我们有时会在同一台服务器上搭建多个版本的PHP,用来测试不同的程序。可是如何在多个版本之间切换呢?本文以ubuntu1804Server为例给大家进行讲解示范。
环境
- ubuntu1804server 4.15.0-200-generic
- apache2
- php 7.4
- php 8.2
1.安装apche2
apache2的安装非常简单,直接使用下面的命令安装即可。
sudo apt install -y apache2
如果安装过程中没有报错,启动一下apache2,并将apache2加入开机自启。
sudo systemctl start apache2
sudo systemctl enable apache2
查看一下apache2的运行状态。
sudo systemctl status apache2
如果出现上图说明apache2已经正常启动了,还可以通过浏览器进行查看,如果在浏览器中出现下图中的欢迎页面说明apache2的安装没有问题了。
2.安装php7.2
ubuntu1804 server通过官方源安装的PHP就是7.2.
sudo apt install -y php
由于我之前安装过PHP,使用php --version
命令查看一下php的版本是php 7.2.24。
还可以通过phpinfo()信息查看一下当前的php更详细的信息,具体方法如下。编辑文件/var/www/html/phpinfo.php
文件,
sudo vim /var/www/html/phpinfo.php
加入以下代码。
<?php
echo phpinfo();
然后在浏览器中访问一下http://YourServerIP/phpinfo.php
,如果出现下图说明你的php7.2已经正常运行了,在phpinfo中还可以查看php相关的更详细的信息。
3.安装php8.2
php8.2已经发布了,php8.2不一定适合生产环境,但是对于想尝鲜的同学来说安装php8.2探索一下8.2版本有什么提升总是好的。
添加php8.2的ppa源。
LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php
sudo apt update
apt search php | grep ^php
这个php ppa源还是相当给力的,通过上面的命令3查看php你会发现从php5到php8.2几乎各个版本都涵盖了。
好了那就安装一下php8.2吧。
sudo apt install -y php8.2
整个安装过程非常的丝滑。
安装完成后想看一下php的版本号。
php --version
目前系统中的php版本已经变成php8.2了。
4.验证
上面的操作似乎有点太顺利了,我们使用浏览器查看一下php的版本详细信息吧。
咦?怎么没有变化?我刷新,我ctrl+F5
,我换浏览器,我重启系统,好吧一番折腾问题依旧,人家php7.2版本岿然不动。
由于我系统采用的是apache2+PHP,在这种架构下,PHP是作为apache2的模块加载的,所以在system service
中并看不到php,所以要解决问题还得从apache2上入手。
apache2的相关配置信息都集中在/etc/apache2
文件夹中,查看一下这个文件夹都有哪些内容吧。
ll /etc/apache2
我们会发现该目录下有mods-available
和mods-enabled
与模块相关的两个子目录,进入
mods-enabled
目录继续查看。
原来问题出在这里,看到没,虽然我们已经安装了php8.2系统也已经默认php的版本就是php8.2了,但是apache2却没有加载它,在这个文件夹中把php7.2两个相关的软链接删除,重新添加php8.2相关的软链接。
rm -rf php7.2*
ln -s /etc/apache2/mods-available/php8.2.conf php8.2.conf
ln -s /etc/apache2/mods-available/php8.2.load php8.2.load
完成上述操作后,重启apache2然后再到浏览器中查看php的详细信息。
sudo systemctl restart apache2
至此php8.2完美的呈现了。