Pos*_*aga 338
今天更新,尽管我禁用了php7.0
apache 模块,但我再次遇到了运行 PHP 7 的问题:phpinfo
正在使用 fastCGI 显示 php 7
......因此,如果在按照以下说明进行操作后遇到这种情况,则可能需要禁用proxy_fcgi
apache 模块:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
1. 重新安装 PHP 5.6
对我有用的是本指南:http : //www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
其实不需要删除php7.0
,你可以一起安装php5.6(也是因为你phpmyadmin
需要php7.0的包会有依赖问题)
假设libapache2-mod-php
有一种适合您在 Apache 中启用 PHP 的方法,您可以按以下方式进行:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0
Run Code Online (Sandbox Code Playgroud)
2. 切换 PHP 版本:
从 php5.6 到 php7.0:
阿帕奇:
sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)命令行界面:
sudo update-alternatives --set php /usr/bin/php7.0
Run Code Online (Sandbox Code Playgroud)从 php7.0 到 php5.6:
阿帕奇:
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)命令行界面:
sudo update-alternatives --set php /usr/bin/php5.6
Run Code Online (Sandbox Code Playgroud)小智 51
Ubuntu 16.04 带有php 7.0
,并且某些php
应用程序可能仍然会失败并显示php 7.0
。因此,在某些情况下,同时使用php 7.0
和可能是明智的php 5.x
,这样您就可以随时选择使用哪个版本来满足您的需要。
你可以这样做:
xavi@computer# sudo su
root@computer# add-apt-repository ppa:ondrej/php
root@computer# apt-get update
root@computer# apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 php5.6-curl php5.6-gd php5.6-mcrypt php5.6-xml php5.6-xmlrpc
Run Code Online (Sandbox Code Playgroud)
php5.6 & php7.0
在我的情况下,安装两者都很干净:没有抱怨问题等。
要从 切换php 5.6
到php 7.0
您需要做两件事:
# For php in web apps
sudo a2dismod php5.6 && sudo a2enmod php7.0 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php
Run Code Online (Sandbox Code Playgroud)
或者从 php7.0 到 php5.6:
# For php in web apps
sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php
Run Code Online (Sandbox Code Playgroud)
您还可以通过运行 php -v 快速检查您使用的是哪个。
oer*_*dnj 12
你的问题缺乏重要的细节,所以我会更广泛地回答。
假设您正在使用包,有一些重要的细节:
Apache2 可以配置为使用apache2
SAPI 使用libapache2-mod-php7.0
包或 FPM SAPI 使用php7.0-fpm
with mod_proxy_fcgi
。
Ubuntu 16.04 的存储库中只有 PHP 7.0,您可以使用ppa:ondrej/php
类似的命名方案(例如libapache2-mod-php5.6
或php5.6-fpm
)来添加对 PHP 5.6 的支持。
如果您使用的是 Apache2 SAPI ( libapache2-mod-php*
),则需要在安装后libapache2-mod-php5.6
通过运行禁用 PHP 7.0,a2dismod php7.0
并通过运行启用 PHP 5.6 a2enmod php5.6
。
如果您使用的是 FPM SAPI( php*-fpm
),那么您需要将 FPM unix socket 从 更改/run/php/php7.0-fpm.sock
为/run/php/php5.6-fpm.sock
。
请记住,对于与 PHP 捆绑的模块(如 MySQL),命名约定是phpX.Y-<ext>
(fephp7.0-mysql
和php5.6-mysql
),但对于外部 PECL 模块(fe APCu、mongodb、...),它只是php-<ext>
(fe php-apcu
, php-mongodb
)。我建议apt-cache search php <ext>
在您的系统上运行以搜索正确的包名称,然后再在 Internet 上提问。
我认为你应该删除你的 php 包并安装 php5.6。您可以按照以下步骤进行:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Run Code Online (Sandbox Code Playgroud)
然后,您可以检查 php 的版本以确保。如下图所示:
php -v
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
569334 次 |
最近记录: |