目录
4. 停止apache2服务后,修改apache里面的mods-enabled,启动时用php8.2
说明:
对于习惯于Win下操作的朋友,WSL2带来了极大的便利,最近需要升级下里面的php版本,分享下过程。
现况描述
如图:本机环境是apache2 + 多个php版本
步骤:
1. 设置安装源
#要在 Ubuntu 22.04 上运行 PHP 8.2,我们需要将 Ondrej sury PPA 添加到我们的系统中。目前他是 PHP 存储库的维护者。
sudo add-apt-repository ppa:ondrej/php
sudo apt update
2. 安装php8.2
apt install php8.2 -y
# php --version
PHP 8.2.14 (cli) (built: Dec 21 2023 20:19:50) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.14, Copyright (c) Zend Technologies
with Zend OPcache v8.2.14, Copyright (c), by Zend Technologies
3. 切换php版本
# update-alternatives --list php
/usr/bin/php8.1
/usr/bin/php8.2
# update-alternatives --set php /usr/bin/php8.2
4. 停止apache2服务后,修改apache里面的mods-enabled,启动时用php8.2
重启下服务,测试
5. 安装php扩展及pecl工具
首先安装普通扩展
apt-get install -y php8.2-cli php8.2-common php8.2-fpm php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php8.2-yaml php8.2-gmagick php8.2-intl php8.2-mcrypt php8.2-redis
安装swoole
apt install php8.2-swoole
安装pecl
wget http://pear.php.net/go-pear.phar -O go-pear.php
php go-pear.php
6. php-fpm服务
apt install php8.2-fpm
注:修改php-fpm的启动用户组和用户(跟apache2用户及用户组相同,否则访问sock时会因权限问题报错), 完毕后启动 php-fpm服务(serivce php8.2-fpm start)
编辑文件 /etc/php/8.2/fpm/pool.d/www.conf
;user = www-data
;group = www-data
user = {you}
group = {you}
;listen.owner = www-data
;listen.group = www-data
listen.owner = {you}
listen.group = {you}
在apache下启用,完毕后重启apache2服务
service apache2 stop
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
service apache2 start
7. WSL2下访问性能问题
在wsl2访问windows的文件是要付出性能代价的,访问/mnt下的win项目文件,request一条要1秒多时间,目前的解决方法是放到wsl2的文件目录里,如~/projects/...
8. composer安装
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
小结
当你需要选用不同版本php时,可用上述方式"enable"它,比docker好处是有更真实的环境。