我在我的Ubuntu 16.04上安装了php 5.6和php 7.1
我知道Apache是我的网络服务器,我可以做到
a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7
当我在Apache模块中禁用php7.1并启用php 5.6时,Apache会识别更改并按预期使用php 5.6解释器。
但是当我从命令行运行内部php web服务器时:
php -S localhost:8888
php使用php 7处理请求,如何在命令行中在php 6.6和php 7.1之间切换?
答案 0 :(得分:121)
sudo update-alternatives --config php
系统上已设置默认PHP 5.6,您需要切换到PHP 7.1。
的Apache:
$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
$ sudo service apache2 restart
命令行:
$ sudo update-alternatives --set php /usr/bin/php7.1
系统上已设置默认PHP 7.1,您需要切换到PHP 5.6。
的Apache:
$ sudo a2dismod php7.1
$ sudo a2enmod php5.6
$ sudo service apache2 restart
命令行:
$ sudo update-alternatives --set php /usr/bin/php5.6
答案 1 :(得分:37)
在你的shell中输入
$ 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:
选择合适的版本
答案 2 :(得分:10)
我认为你应该试试这个
从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
答案 3 :(得分:9)
列出所有可用版本并从中进行选择:
sudo update-alternatives --config php
或手动
sudo a2dismod php7.1 // disable
sudo a2enmod php5.6 // enable
答案 4 :(得分:6)
我实际上不建议在php 5或7中使用a2enmod
。我会使用update-alternatives
。您可以sudo update-alternatives --config php
设置要使用的系统范围的PHP版本。这使您的命令行和apache版本的工作方式相同。您可以在man page上详细了解update-alternatives
。
答案 5 :(得分:6)
在 ubuntu 20.04
中在 PHP 8.0
和 PHP 7.4
版本之间切换:
降级 PHP 8.0
到 PHP 7.4
sudo a2dismod php8.0
sudo a2enmod php7.4
sudo service apache2 restart
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo service apache2 restart
升级 PHP 7.4
到 PHP 8.0
sudo a2dismod php7.4
sudo a2enmod php8.0
sudo service apache2 restart
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo service apache2 restart
检查更改:
php -v
,您将获得:PHP 8.0.3 (cli)(构建时间:2021 年 3 月 5 日 07:54:13)(NTS) 版权所有 (c) PHP 集团 Zend Engine v4.0.3,版权所有 (c) Zend Technologies 使用 Zend OPcache v8.0.3,版权所有 (c),由 Zend Technologies 提供
或
<块引用>PHP 7.4.16 (cli)(构建时间:2021 年 3 月 5 日 07:54:38)(NTS) 版权所有 (c) PHP 集团 Zend Engine v3.4.0,版权所有 (c) Zend Technologies 使用 Zend OPcache v7.4.16,版权所有 (c),由 Zend Technologies 提供
/var/www/html/
在可运行的本地环境中添加一个 PHP 文件,例如 phpinfo();
路径,并在浏览器中获取 PHP 信息(在页面顶部可以查看 PHP 版本)立>
答案 6 :(得分:5)
您可以创建一个脚本以从版本切换:iter = ws.iter_rows
# Start at row 2
for row_idx in range(2, ws.max_row):
for col_idx,col in enumerate(iter(str(row_idx)), 1):
for cell in col:
npAvailability[row_idx, col_idx] = cell.value
然后键入:
sudo nano switch_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 switch_php
,其中参数为7或5.6
这就是你现在可以轻松地从PHP7切换到PHP 5.6!
答案 7 :(得分:5)
您可以使用以下命令行在两个PHP版本之间进行切换。
例如
我想将PHP Version
从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
用于启用该版本
答案 8 :(得分:3)
在终端输入指定的命令..
禁用所选的PHP版本......
启用其他PHP版本....
它会升级Php版本,如果你想要版本降级,反过来也是如此,你可以通过PHP_INFO()看到它;
答案 9 :(得分:3)
使用:
从PHP 5.6切换到PHP 7.2sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart
使用:
从PHP 7.2切换到PHP 5.6sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
答案 10 :(得分:3)
您可以使用这些专门为在Ubuntu 16.04 LTS中使用而设计的开源PHP Switch Scripts。
hotspot/src/share/vm/gc/shared/collectedHeap.inline.hpp
有一个setup.sh
脚本可以安装PHP 5.6,7.0,7.1&amp;的所有必需依赖项。 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
答案 11 :(得分:2)
也许您的系统中可能有一个旧的PHP版本,例如PHP 5.6,并且您也安装了PHP 7.2,所以您的计算机中有多个PHP。有一些应用程序是在较旧的PHP 5.6为最新版本时开发的,它们仍然处于运行状态,并且您正在使用这些应用程序。您可能同时在Laravel上工作,但Laravel需要PHP 7+才能开始。得到图片了吗?
在这种情况下,您可以在PHP版本之间进行切换以满足您的要求。
从PHP 5.6切换=> PHP 7.2
Apache:-
sudo a2dismod php5.6
sudo a2enmod php7.2
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
反之亦然,从PHP 7.2切换=> PHP 5.6
Apache:-
sudo a2dismod php7.2
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
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6
答案 12 :(得分:1)
从PHP 5.6 => PHP 7.1
$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
对于旧版Linux
$ sudo service apache2 restart
以获取最新版本
$ systemctl restart apache2
答案 13 :(得分:1)
我制作了一个bash脚本来在Ubuntu上的不同PHP版本之间切换。
希望它对某人有帮助。
这是脚本: (将其保存在/usr/local/bin/sphp.sh中,不要忘记使用命令添加+ x标志:sudo chmod + x /usr/local/bin/sphp.sh)
#!/bin/bash
# Usage
if [ $# -ne 1 ]; then
echo "Usage: sphp [phpversion]"
echo "Example: sphp 7.2"
exit 1
fi
currentversion="`php -r \"error_reporting(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}
if [ $? -eq 0 ]; then
if [ "${newversion}" == "${currentversion}" ]; then
echo "PHP version [${newversion}] is already being used"
exit 1
fi
echo "PHP version [$newversion] found"
echo "Switching from [php${currentversion}] to [php${newversion}] ... "
printf "a2dismod php$majorOld.$minorOld ... "
sudo a2dismod "php${majorOld}.${minorOld}"
printf "[OK] and "
printf "a2enmod php${newversion} ... "
sudo a2enmod "php${majorNew}.${minorNew}"
printf "[OK]\n"
printf "update-alternatives ... "
sudo update-alternatives --set php "/usr/bin/php${majorNew}.${minorNew}"
printf "[OK]\n"
sudo service apache2 restart
printf "[OK] apache2 restarted\n"
else
echo "PHP version $majorNew.$minorNew was not found."
echo "Try \`sudo apt install php@${newversion}\` first."
exit 1
fi
echo "DONE!"
答案 14 :(得分:1)
请按照以下步骤操作:
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
答案 15 :(得分:0)
在Ubuntu 18.04上安装laravel时,请选择默认的PHP 7.3.0RC3安装,但是laravel和symfony将无法正确安装,因为它们会丢失php-xml和php-zip,即使它们已安装。您需要按照上面的说明切换到php 7.1,或者
sudo update-alternatives --set php /usr/bin/php7.1
现在,运行laravel新博客,将正确进行
答案 16 :(得分:0)
您可以使用以下脚本轻松地在PHP版本之间切换 我也包括phpize配置。
https://github.com/anilkumararumulla/switch-php-version
下载脚本文件并运行
sh switch.sh
答案 17 :(得分:0)
这对我有用:-
sudo update-alternatives --set php /usr/bin/php7.4
只需将PHP版本更改为您需要的任何版本我已将其更改为php7.4