@@ -11,6 +11,12 @@ read WSL_USER_NAME
1111echo " What is your WSL user group? (Same as username if you're unsure)"
1212read WSL_USER_GROUP
1313
14+ # Save necessary information for features
15+ mkdir -p ~ /.homestead-features
16+ mkdir -p /home/$WSL_USER_NAME /.homestead-features
17+ echo $WSL_USER_NAME > ~ /.homestead-features/wsl_user_name
18+ echo $WSL_USER_GROUP > ~ /.homestead-features/wsl_user_group
19+
1420# Update Package List
1521apt-get update
1622
@@ -50,41 +56,19 @@ apt-get install -y --allow-change-held-packages \
5056php-imagick php-memcached php-redis php-xdebug php-dev php-swoole
5157
5258# PHP 8.3
53- apt-get install -y --allow-change-held-packages \
54- php8.3 php8.3-bcmath php8.3-bz2 php8.3-cgi php8.3-cli php8.3-common php8.3-curl php8.3-dba php8.3-dev \
55- php8.3-enchant php8.3-fpm php8.3-gd php8.3-gmp php8.3-imap php8.3-interbase php8.3-intl php8.3-ldap \
56- php8.3-mbstring php8.3-mysql php8.3-odbc php8.3-opcache php8.3-pgsql php8.3-phpdbg php8.3-pspell php8.3-readline \
57- php8.3-snmp php8.3-soap php8.3-sqlite3 php8.3-sybase php8.3-tidy php8.3-xml php8.3-xsl \
58- php8.3-zip php8.3-imagick php8.3-memcached php8.3-redis php8.3-xmlrpc php8.3-xdebug
59-
60- # Configure php.ini for CLI
61- sed -i " s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/8.3/cli/php.ini
62- sed -i " s/display_errors = .*/display_errors = On/" /etc/php/8.3/cli/php.ini
63- sed -i " s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.3/cli/php.ini
64- sed -i " s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.3/cli/php.ini
65-
66- # Configure Xdebug
67- echo " xdebug.mode = debug" >> /etc/php/8.3/mods-available/xdebug.ini
68- echo " xdebug.discover_client_host = true" >> /etc/php/8.3/mods-available/xdebug.ini
69- echo " xdebug.client_port = 9003" >> /etc/php/8.3/mods-available/xdebug.ini
70- echo " xdebug.max_nesting_level = 512" >> /etc/php/8.3/mods-available/xdebug.ini
71- echo " opcache.revalidate_freq = 0" >> /etc/php/8.3/mods-available/opcache.ini
72-
73- # Fixed php fpm bind listening socket - no such file issue.
74- mkdir -p /run/php
75- touch /run/php/php8.3-fpm.sock
76-
77- # Install Composer
78- curl -sS https://getcomposer.org/installer | php
79- mv composer.phar /usr/local/bin/composer
80- chown -R vagrant:vagrant /home/vagrant/.config
81-
82- # Install Global Packages
83- sudo su vagrant << 'EOF '
84- /usr/local/bin/composer global require "laravel/envoy=^2.0"
85- /usr/local/bin/composer global require "laravel/installer=^5.0"
86- /usr/local/bin/composer global config --no-plugins allow-plugins.slince/composer-registry-manager true
87- /usr/local/bin/composer global require "slince/composer-registry-manager=^2.0"
59+ bash ' scripts/features/php8.3.sh'
60+
61+ # Install Composer
62+ curl -sS https://getcomposer.org/installer | php
63+ mv composer.phar /usr/local/bin/composer
64+ chown -R $WSL_USER_NAME :$WSL_USER_GROUP /home/$WSL_USER_NAME /.config
65+
66+ # Install Global Packages
67+ sudo su $WSL_USER_NAME << 'EOF '
68+ /usr/local/bin/composer global require "laravel/envoy=^2.0"
69+ /usr/local/bin/composer global require "laravel/installer=^5.0"
70+ /usr/local/bin/composer global config --no-plugins allow-plugins.slince/composer-registry-manager true
71+ /usr/local/bin/composer global require "slince/composer-registry-manager=^2.0"
8872EOF
8973
9074# Install Nginx
@@ -99,36 +83,14 @@ chown -R $WSL_USER_NAME:$WSL_USER_GROUP /home/$WSL_USER_NAME
9983touch /home/$WSL_USER_NAME /.config/nginx/nginx.conf
10084ln -sf /home/$WSL_USER_NAME /.config/nginx/nginx.conf /etc/nginx/conf.d/nginx.conf
10185
102- # Configure php.ini for FPM
103- sed -i " s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/8.3/fpm/php.ini
104- sed -i " s/display_errors = .*/display_errors = On/" /etc/php/8.3/fpm/php.ini
105- sed -i " s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/8.3/fpm/php.ini
106- sed -i " s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.3/fpm/php.ini
107- sed -i " s/upload_max_filesize = .*/upload_max_filesize = 100M/" /etc/php/8.3/fpm/php.ini
108- sed -i " s/post_max_size = .*/post_max_size = 100M/" /etc/php/8.3/fpm/php.ini
109- sed -i " s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.3/fpm/php.ini
110-
111- printf " [openssl]\n" | tee -a /etc/php/8.3/fpm/php.ini
112- printf " openssl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.3/fpm/php.ini
113- printf " [curl]\n" | tee -a /etc/php/8.3/fpm/php.ini
114- printf " curl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.3/fpm/php.ini
115-
11686# Set The Nginx & PHP-FPM User
11787sed -i " s/user www-data;/user $WSL_USER_NAME ;/" /etc/nginx/nginx.conf
11888sed -i " s/# server_names_hash_bucket_size.*/server_names_hash_bucket_size 64;/" /etc/nginx/nginx.conf
11989
120- sed -i " s/user = www-data/user = $WSL_USER_NAME /" /etc/php/8.3/fpm/pool.d/www.conf
121- sed -i " s/group = www-data/group = $WSL_USER_NAME /" /etc/php/8.3/fpm/pool.d/www.conf
122-
123- sed -i " s/listen\.owner.*/listen.owner = $WSL_USER_NAME /" /etc/php/8.3/fpm/pool.d/www.conf
124- sed -i " s/listen\.group.*/listen.group = $WSL_USER_NAME /" /etc/php/8.3/fpm/pool.d/www.conf
125- sed -i " s/;listen\.mode.*/listen.mode = 0666/" /etc/php/8.3/fpm/pool.d/www.conf
126-
12790# Disable XDebug On The CLI
128- sudo phpdismod -s cli xdebug
91+ phpdismod -s cli xdebug
12992
13093service nginx restart
131- service php8.3-fpm restart
13294
13395# Add $WSL_USER_NAME User To WWW-Data
13496usermod -a -G www-data $WSL_USER_NAME
@@ -147,53 +109,11 @@ apt-get install -y sqlite3 libsqlite3-dev
147109service apparmor stop
148110update-rc.d -f apparmor remove
149111
150- # Remove MySQL
151- apt-get remove -y --purge mysql-server mysql-client mysql-common
152112apt-get autoremove -y
153113apt-get autoclean
154114
155- rm -rf /var/lib/mysql/*
156- rm -rf /var/log/mysql
157- rm -rf /etc/mysql
158-
159- # Add Maria PPA
160- curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
161-
162- echo " mariadb-server mysql-server/data-dir select ''" | debconf-set-selections
163- echo " mariadb-server mysql-server/root_password password secret" | debconf-set-selections
164- echo " mariadb-server mysql-server/root_password_again password secret" | debconf-set-selections
165-
166- mkdir /etc/mysql
167- touch /etc/mysql/debian.cnf
168-
169115# Install MariaDB
170- apt-get install -y mariadb-server mariadb-client
171-
172- # Configure Maria Remote Access and ignore db dirs
173- sed -i " s/bind-address = 127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/mariadb.conf.d/50-server.cnf
174- cat > /etc/mysql/mariadb.conf.d/50-server.cnf << EOF
175- [mysqld]
176- bind-address = 0.0.0.0
177- ignore-db-dir = lost+found
178- #general_log
179- #general_log_file=/var/log/mysql/mariadb.log
180- EOF
181-
182- export MYSQL_PWD=secret
183-
184- mysql --user=" root" -e " GRANT ALL ON *.* TO root@'0.0.0.0' IDENTIFIED BY 'secret' WITH GRANT OPTION;"
185- service mysql restart
186-
187- mysql --user=" root" -e " CREATE USER IF NOT EXISTS 'homestead'@'0.0.0.0' IDENTIFIED BY 'secret';"
188- mysql --user=" root" -e " GRANT ALL ON *.* TO 'homestead'@'0.0.0.0' IDENTIFIED BY 'secret' WITH GRANT OPTION;"
189- mysql --user=" root" -e " GRANT ALL ON *.* TO 'homestead'@'%' IDENTIFIED BY 'secret' WITH GRANT OPTION;"
190- mysql --user=" root" -e " FLUSH PRIVILEGES;"
191- service mysql restart
192-
193- mysql_upgrade --user=" root" --verbose --force
194- service mysql restart
195-
196- unset MYSQL_PWD
116+ bash ' scripts/features/mariadb.sh'
197117
198118# Install Postgres 15
199119apt-get install -y postgresql-15 postgresql-server-dev-15 postgresql-15-postgis-3 postgresql-15-postgis-3-scripts
@@ -219,16 +139,14 @@ service redis-server start
219139apt-get upgrade -y
220140
221141# Clean Up
222- apt -y autoremove
223- apt -y clean
224142chown -R $WSL_USER_NAME :$WSL_USER_GROUP /home/$WSL_USER_NAME
225143chown -R $WSL_USER_NAME :$WSL_USER_GROUP /usr/local/bin
226144
227145# Add Composer Global Bin To Path
228146printf " \nPATH=\" $( sudo su - $WSL_USER_NAME -c ' composer config -g home 2>/dev/null' ) /vendor/bin:\$ PATH\" \n" | tee -a /home/$WSL_USER_NAME /.profile
229147
230- apt-get -y autoremove;
231- apt-get -y clean;
148+ apt-get -y autoremove
149+ apt-get -y clean
232150
233151# What are you doing Ubuntu?
234152# https://askubuntu.com/questions/1250974/user-root-cant-write-to-file-in-tmp-owned-by-someone-else-in-20-04-but-can-in
0 commit comments