Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit b02182c

Browse files
committed
Update wsl-init to 22.04 php8.3 Require base v14.0.2
1 parent 19a7697 commit b02182c

File tree

2 files changed

+68
-62
lines changed

2 files changed

+68
-62
lines changed

bin/wsl-init

Lines changed: 67 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -21,65 +21,72 @@ apt-get upgrade -y
2121
echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
2222
locale-gen en_US.UTF-8
2323

24-
apt-get install -y software-properties-common curl
24+
apt-get install -y software-properties-common curl gnupg debian-keyring debian-archive-keyring apt-transport-https \
25+
ca-certificates
2526

2627
# Install Some PPAs
2728
apt-add-repository ppa:ondrej/php -y
28-
apt-add-repository ppa:chris-lea/redis-server -y
29+
30+
# Prepare keyrings directory
31+
sudo mkdir -p /etc/apt/keyrings
32+
2933
# NodeJS
30-
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
31-
# PostgreSQL
32-
tee /etc/apt/sources.list.d/pgdg.list <<END
33-
deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
34-
END
34+
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
35+
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_21.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
3536

36-
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
37+
# PostgreSQL
38+
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/keyrings/postgresql.gpg
39+
sudo sh -c 'echo "deb [signed-by=/etc/apt/keyrings/postgresql.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
3740

3841
## Update Package Lists
39-
apt-get update
42+
apt-get update -y
4043

4144
# Install Some Basic Packages
42-
apt-get install -y build-essential dos2unix gcc git git-lfs libmcrypt4 libpcre3-dev libpng-dev unzip make \
43-
python3-pip re2c supervisor unattended-upgrades whois vim libnotify-bin pv mcrypt bash-completion zsh imagemagick
44-
45-
## Set My Timezone
46-
#ln -sf /usr/share/zoneinfo/UTC /etc/localtime
45+
apt-get install -y build-essential dos2unix gcc git git-lfs libmcrypt4 libpcre3-dev libpng-dev chrony unzip make pv \
46+
python3-pip re2c supervisor unattended-upgrades whois vim cifs-utils bash-completion zsh graphviz avahi-daemon tshark
4747

4848
# Install Generic PHP packages
4949
apt-get install -y --allow-change-held-packages \
5050
php-imagick php-memcached php-redis php-xdebug php-dev php-swoole
5151

52-
# PHP 8.2
52+
# PHP 8.3
5353
apt-get install -y --allow-change-held-packages \
54-
php8.2 php8.2-bcmath php8.2-bz2 php8.2-cgi php8.2-cli php8.2-common php8.2-curl php8.2-dba php8.2-dev \
55-
php8.2-enchant php8.2-fpm php8.2-gd php8.2-gmp php8.2-imap php8.2-interbase php8.2-intl php8.2-ldap \
56-
php8.2-mbstring php8.2-mysql php8.2-odbc php8.2-opcache php8.2-pgsql php8.2-phpdbg php8.2-pspell php8.2-readline \
57-
php8.2-snmp php8.2-soap php8.2-sqlite3 php8.2-sybase php8.2-tidy php8.2-xml php8.2-xsl \
58-
php8.2-zip
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
5972

6073
# Fixed php fpm bind listening socket - no such file issue.
6174
mkdir -p /run/php
62-
touch /run/php/php8.2-fpm.sock
63-
64-
# Install Composer
65-
curl -sS https://getcomposer.org/installer | php
66-
mv composer.phar /usr/local/bin/composer
67-
chown -R $WSL_USER_NAME:$WSL_USER_NAME /home/$WSL_USER_NAME/.config
68-
69-
## Install Global Packages
70-
sudo su $WSL_USER_NAME <<'EOF'
71-
/usr/local/bin/composer global require "laravel/envoy=^2.0"
72-
/usr/local/bin/composer global require "laravel/installer=^4.2"
73-
/usr/local/bin/composer global config --no-plugins allow-plugins.slince/composer-registry-manager true
74-
/usr/local/bin/composer global require "slince/composer-registry-manager=^2.0"
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"
7588
EOF
7689

77-
# Configure php.ini for CLI
78-
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/8.2/cli/php.ini
79-
sed -i "s/display_errors = .*/display_errors = On/" /etc/php/8.2/cli/php.ini
80-
sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.2/cli/php.ini
81-
sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.2/cli/php.ini
82-
8390
# Install Nginx
8491
apt-get install -y --allow-downgrades --allow-remove-essential --allow-change-held-packages nginx
8592

@@ -92,37 +99,36 @@ chown -R $WSL_USER_NAME:$WSL_USER_GROUP /home/$WSL_USER_NAME
9299
touch /home/$WSL_USER_NAME/.config/nginx/nginx.conf
93100
ln -sf /home/$WSL_USER_NAME/.config/nginx/nginx.conf /etc/nginx/conf.d/nginx.conf
94101

95-
# Setup Some PHP-FPM Options
96-
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/8.2/fpm/php.ini
97-
sed -i "s/display_errors = .*/display_errors = On/" /etc/php/8.2/fpm/php.ini
98-
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/8.2/fpm/php.ini
99-
sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.2/fpm/php.ini
100-
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 100M/" /etc/php/8.2/fpm/php.ini
101-
sed -i "s/post_max_size = .*/post_max_size = 100M/" /etc/php/8.2/fpm/php.ini
102-
sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.2/fpm/php.ini
103-
104-
printf "[openssl]\n" | tee -a /etc/php/8.2/fpm/php.ini
105-
printf "openssl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.2/fpm/php.ini
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
106110

107-
printf "[curl]\n" | tee -a /etc/php/8.2/fpm/php.ini
108-
printf "curl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.2/fpm/php.ini
109-
110-
# Disable XDebug On The CLI
111-
sudo phpdismod -s cli xdebug
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
112115

113116
# Set The Nginx & PHP-FPM User
114117
sed -i "s/user www-data;/user $WSL_USER_NAME;/" /etc/nginx/nginx.conf
115118
sed -i "s/# server_names_hash_bucket_size.*/server_names_hash_bucket_size 64;/" /etc/nginx/nginx.conf
116119

117-
sed -i "s/user = www-data/user = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf
118-
sed -i "s/group = www-data/group = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf
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
119126

120-
sed -i "s/listen\.owner.*/listen.owner = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf
121-
sed -i "s/listen\.group.*/listen.group = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf
122-
sed -i "s/;listen\.mode.*/listen.mode = 0666/" /etc/php/8.2/fpm/pool.d/www.conf
127+
# Disable XDebug On The CLI
128+
sudo phpdismod -s cli xdebug
123129

124130
service nginx restart
125-
service php8.0-fpm restart
131+
service php8.3-fpm restart
126132

127133
# Add $WSL_USER_NAME User To WWW-Data
128134
usermod -a -G www-data $WSL_USER_NAME

scripts/homestead.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def self.configure(config, settings)
1919
config.vm.define settings['name'] ||= 'homestead'
2020
config.vm.box = settings['box'] ||= 'laravel/homestead'
2121
unless settings.has_key?('SpeakFriendAndEnter')
22-
config.vm.box_version = settings['version'] ||= '>= 14.0.0, < 15.0.0'
22+
config.vm.box_version = settings['version'] ||= '>= 14.0.2, < 15.0.0'
2323
end
2424
config.vm.hostname = settings['hostname'] ||= 'homestead'
2525

0 commit comments

Comments
 (0)