php - sudo a2enmod php5.6, php -v 仍然显示 php 7.01 冲突

标签 php linux ubuntu-16.04

我正在尝试切换 php 版本,得到以下响应。我尝试卸载 mpm_prefork 和 mpm_worker 仍然没有任何乐趣,请有任何想法。

在 Ubuntu 16.04 上

sudo a2enmod php5.6

 Considering dependency mpm_prefork for php5.6:
 Considering conflict mpm_event for mpm_prefork:
 Considering conflict mpm_worker for mpm_prefork:
 Enabling module mpm_prefork.
 Considering conflict php5 for php5.6:
 Enabling module php5.6.
 To activate the new configuration, you need to run:
 service apache2 restart

最佳答案

安装 Ondřej Surý repo

sudo add-apt-repository ppa:ondrej/php

安装 PHP 版本

sudo apt install php5.6 php7.0 php7.1 php7.2 php7.3 php7.4 php8.0 php8.1

您的命令看起来是正确的。测试前是否重启了 apache?

sudo service apache2 restart

PHP 模块 php5.6Ondřej Surý 制作只能通过以下方式启用:

sudo a2dismod php7.0
sudo a2dismod php7.1
sudo a2dismod php7.2
sudo a2dismod php7.3
sudo a2dismod php7.4
sudo a2dismod php8.0
sudo a2dismod php8.1
sudo a2enmod php5.6
sudo update-alternatives --set php /usr/bin/php5.6
sudo service apache2 restart

我发现此设置与除 PREFORK 之外的任何其他 MPM 模块不兼容。在启用 php5.6 模块之前,您必须确保首先禁用所有其他 MPM 模块。

如果模组无法启用,您可能必须尝试禁用其他 MPM。

sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event

然后尝试再次启用模组,因为它应该会自动启用正确的 MPM。

$ sudo a2enmod php5.6
Considering dependency mpm_prefork for php5.6:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php5.6:
Enabling module php5.6.
To activate the new configuration, you need to run:
  service apache2 restart

仅供引用,我喜欢将这些命令放入我的“.bash_aliases”中,这样​​我就可以随时使用它们进行开发工作。

# Aliases - PHP
alias php.info='php -i'
alias php5.6='sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2dismod php7.2 && sudo a2dismod php7.3 && sudo a2dismod php7.4 && sudo a2dismod php8.0 && sudo a2dismod php8.1 && sudo a2enmod php5.6 && sudo update-alternatives --set php /usr/bin/php5.6 && sudo service apache2 restart'
alias php7.0='sudo a2dismod php5.6 && sudo a2dismod php7.1 && sudo a2dismod php7.2 && sudo a2dismod php7.3 && sudo a2dismod php7.4 && sudo a2dismod php8.0 && sudo a2dismod php8.1 && sudo a2enmod php7.0 && sudo update-alternatives --set php /usr/bin/php7.0 && sudo service apache2 restart'
alias php7.1='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2dismod php7.2 && sudo a2dismod php7.3 && sudo a2dismod php7.4 && sudo a2dismod php8.0 && sudo a2dismod php8.1 && sudo a2enmod php7.1 && sudo update-alternatives --set php /usr/bin/php7.1 && sudo service apache2 restart'
alias php7.2='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2dismod php7.3 && sudo a2dismod php7.4 && sudo a2dismod php8.0 && sudo a2dismod php8.1 && sudo a2enmod php7.2 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo service apache2 restart'
alias php7.3='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2dismod php7.2 && sudo a2dismod php7.4 && sudo a2dismod php8.0 && sudo a2dismod php8.1 && sudo a2enmod php7.3 && sudo update-alternatives --set php /usr/bin/php7.3 && sudo service apache2 restart'
alias php7.4='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2dismod php7.2 && sudo a2dismod php7.3 && sudo a2dismod php8.0 && sudo a2dismod php8.1 && sudo a2enmod php7.4 && sudo update-alternatives --set php /usr/bin/php7.4 && sudo service apache2 restart'
alias php8.0='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2dismod php7.2 && sudo a2dismod php7.3 && sudo a2dismod php7.4 && sudo a2dismod php8.1 && sudo a2enmod php8.0 && sudo update-alternatives --set php /usr/bin/php8.0 && sudo service apache2 restart'
alias php8.1='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2dismod php7.2 && sudo a2dismod php7.3 && sudo a2dismod php7.4 && sudo a2dismod php8.0 && sudo a2enmod php8.1 && sudo update-alternatives --set php /usr/bin/php8.1 && sudo service apache2 restart'

要点:https://gist.github.com/djravine/376e81a018ba2b980750a5578deb3935

关于php - sudo a2enmod php5.6, php -v 仍然显示 php 7.01 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42506956/

相关文章:

php - 自定义客户属性未保存到数据库 Magento?

linux - Linux 内核中信号处理的堆栈帧

c++ - 如何在C++中调用Web服务方法?

linux - 在 SSH 连接中使用 Expect 脚本发送密码命令不起作用

mongodb错误。如何解决 mongoDB 中的错误?

linux - 由于 mkdir 拒绝,无法安装软件

php - Javascript 端 RequestHandler

php - mb_str_replace()... 很慢。有什么选择吗?

php - 将两个旧表中的数据插入到新表中

sqlite - 来自 native 模块的非法回调类型调用。此回调类型仅允许从 native 代码进行一次调用