在命令行ubuntu 16.04上切换php版本
我已经在我的Ubuntu 16.04上安装了PHP5.6和PHP7.1 我知道使用Apache作为我的web服务器,我可以做到在命令行ubuntu 16.04上切换php版本,php,apache,command-line-interface,php-5.6,php-7.1,Php,Apache,Command Line Interface,Php 5.6,Php 7.1,我已经在我的Ubuntu 16.04上安装了PHP5.6和PHP7.1 我知道使用Apache作为我的web服务器,我可以做到 a2enmod php5.6 #to enable php5 a2enmod php7.1 #to enable php7 当我在Apache模块中禁用php7.1并启用PHP5.6时,Apache会识别出这一变化,并按预期使用PHP5.6解释器 但当我从命令行运行内部php web服务器时: php -S localhost:8888 php使用PHP7处理请求。
a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7
当我在Apache模块中禁用php7.1并启用PHP5.6时,Apache会识别出这一变化,并按预期使用PHP5.6解释器
但当我从命令行运行内部php web服务器时:
php -S localhost:8888
php使用PHP7处理请求。那么如何在命令行中在PHP5.6和PHP7.1之间切换呢?我实际上不建议对PHP5或PHP7使用
a2enmod
。我会使用更新备选方案
。您可以执行sudo update alternations--config php
来设置要使用的系统范围内的php版本。这使得命令行和apache版本的工作方式相同。您可以在.交互式切换模式上阅读更多关于更新备选方案的信息
手动切换
从PHP5.6=>PHP7.1
系统上设置了默认的PHP5.6,您需要切换到PHP7.1
阿帕奇:
$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
$ sudo service apache2 restart
$ sudo a2dismod php7.1
$ sudo a2enmod php5.6
$ sudo service apache2 restart
命令行:
$ sudo update-alternatives --set php /usr/bin/php7.1
$ sudo update-alternatives --set phar /usr/bin/phar7.1
$ sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1
$ sudo update-alternatives --set php /usr/bin/php5.6
从PHP7.1=>PHP5.6
系统上设置了默认的PHP7.1,您需要切换到PHP5.6
阿帕奇:
$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
$ sudo service apache2 restart
$ sudo a2dismod php7.1
$ sudo a2enmod php5.6
$ sudo service apache2 restart
命令行:
$ sudo update-alternatives --set php /usr/bin/php7.1
$ sudo update-alternatives --set phar /usr/bin/phar7.1
$ sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1
$ sudo update-alternatives --set php /usr/bin/php5.6
您可以创建一个脚本来切换版本:sudo nano-switch\u php
然后键入以下内容:
#!/bin/sh
#!/bin/bash
echo "Switching to PHP$1..."
case $1 in
"7")
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;;
"5.6")
sudo a2dismod php7.0
sudo a2enmod php5.6
sudo service apache2 restart
sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;;
esac
echo "Current version: $( php -v | head -n 1 | cut -c-7 )"
退出并保存
使其可执行:sudo chmod+x开关\u php
要执行脚本,只需键入/switch\u php[VERSION\u NUMBER]
,其中参数为7或5.6
就这样,您现在可以轻松地从PHP7切换到PHP5.6 我想你应该试试这个
从php5.6到php7.1
sudo a2dismod php5.6
sudo a2enmod php7.1
sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1
从php7.1到php5.6
sudo a2dismod php7.1
sudo a2enmod php5.6
sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
在你的命令行中输入这个,应该适用于16.04、18.04和20.04之间的所有ubuntu
$ sudo update-alternatives --config php
这就是你将得到的
There are 4 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php7.2 72 auto mode
1 /usr/bin/php5.6 56 manual mode
2 /usr/bin/php7.0 70 manual mode
3 /usr/bin/php7.1 71 manual mode
4 /usr/bin/php7.2 72 manual mode
Press <enter> to keep the current choice[*], or type selection number:
备选php有4种选择(提供/usr/bin/php)。
选择路径优先级状态
------------------------------------------------------------
*0/usr/bin/php7.2 72自动模式
1/usr/bin/php5.6 56手动模式
2/usr/bin/php7.0 70手动模式
3/usr/bin/php7.1 71手动模式
4/usr/bin/php7.2 72手动模式
按可保留当前选项[*],或类型选择编号:
选择适当的版本在终端中键入给定命令
对于禁用选定的PHP版本
- sudo a2dismod php5
- sudo服务apache2重启
对于启用其他PHP版本
- sudo a2enmod php5.6
- sudo服务apache2重启
它将升级Php版本,同样的事情反过来如果你想要版本降级,你可以通过Php_INFO()看到它 使用以下命令从PHP 5.6切换到PHP 7.2:
sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart
使用以下命令从PHP 7.2切换到PHP 5.6:
sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
您可以使用这些开源PHP切换脚本,它们是专门为Ubuntu 16.04 LTS设计的
有一个setup.sh
脚本,用于安装PHP5.6、7.0、7.1和7.2所需的所有依赖项。完成后,您只需运行以下切换脚本之一即可更改PHP CLI和Apache 2模块的版本
./switch-to-php-5.6.sh
./switch-to-php-7.0.sh
./switch-to-php-7.1.sh
./switch-to-php-7.2.sh
要列出所有可用版本并从中进行选择,请执行以下操作:
sudo update-alternatives --config php
或者手动操作
sudo a2dismod php7.1 // disable
sudo a2enmod php5.6 // enable
从PHP5.6=>PHP7.1
$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
对于旧linux版本
$ sudo service apache2 restart
有关最新版本
$ systemctl restart apache2
您可以使用下面的脚本在PHP版本之间轻松切换
我也包括了phpize配置
下载脚本文件并运行
sh switch.sh
在Ubuntu18.04上安装laravel时,请选择默认的PHP7.3.0RC3安装,但laravel和symfony不会正确安装,即使安装了PHP xml和PHPzip,也会抱怨缺少PHP xml和PHPzip。您需要切换到PHP7.1,使用上述说明或
sudo update-alternatives --set php /usr/bin/php7.1
现在,运行laravel新博客,将正确进行
您可以使用下面的命令行在两个PHP版本之间切换
例如
我想将PHP版本
从7.1
切换到7.2
我们可以使用下面的命令
sudo a2dismod php7.1 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart
a2dismod
用于禁用当前的php版本,而a2enmod
用于启用该版本可能您的系统中有一个像PHP5.6这样的旧php版本,并且您也安装了PHP7.2,因此您的计算机中有多个php。有一些应用程序是在旧版PHP5.6是最新版本时开发的,它们仍然是活动的,您正在使用这些应用程序,您可能同时使用Laravel,但Laravel需要PHP7+才能开始使用。明白了吗
在这种情况下,您可以根据需要在PHP版本之间切换
从PHP5.6=>PHP7.2切换
阿帕奇:-
sudo a2dismod php5.6
sudo a2enmod php7.2
sudo service apache2 restart
sudo a2dismod php7.2
sudo a2enmod php5.6
sudo service apache2 restart
命令行:-
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2
sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6
反之亦然,从PHP7.2=>PHP5.6切换
阿帕奇:-
sudo a2dismod php5.6
sudo a2enmod php7.2
sudo service apache2 restart
sudo a2dismod php7.2
sudo a2enmod php5.6
sudo service apache2 restart
命令行:-
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2
sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6
请按照以下步骤操作:
i.e : your current version is : current_version = 7.3 , and you want to change it to : new_version = 7.2
1) sudo a2dismod php(current_version)
2) sudo a2enmod php(new_version)
3) sudo update-alternatives --config php (here you need to select php version number)
4) restart apache through :
sudo /etc/init.d/apache2 restart OR
sudo service apache2 restart
我制作了一个bash脚本来在Ubuntu上的不同PHP版本之间切换
希望它能帮助别人
以下是脚本:
(将其保存在/usr/local/bin/sphp.sh中,不要忘记使用命令sudo chmod+x/usr/local/bin/sphp.sh添加+x标志)
#/bin/bash
#用法
如果[$#-ne 1];然后
echo“用法:sphp[phpversion]”
echo“示例:sphp 7.2”
出口1
fi
currentversion=“`php-r\”错误报告(0);echo str_replace('.','',substr(phpversion(),0,3))\"`"
newversion=“$1”
majorOld=${currentversion:0:1}
minorOld=${currentversion:1:1}
majorNew=${newversion:0:1}
minorNew=${newversion:2:1}
如果[$?-等式0];然后
如果[“${newversion}”==“${currentversion}”];然后
echo“PHP版本[${newversion}]已在使用”
出口1
fi
echo“找到PHP版本[$newversion]
echo“从[php${currentversion}]切换到[php${newversion}…”
printf“a2dismod php$majorOld.$minorOld