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

2022-08-30 16:47:41

我正在尝试切换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

答案 1

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

sudo service apache2 restart

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

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

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

如果 mod 无法启用,您可能需要尝试禁用其他 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”中,因此我总是将它们放在DEV工作中。

# 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 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 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 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 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 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 a2enmod php7.4 && sudo update-alternatives --set php /usr/bin/php7.4 && sudo service apache2 restart'

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


答案 2

php -v(默认 PHP 版本)

从 PHP 7.0 到 PHP 5.6:

sudo a2dismod php7.0

sudo a2enmod php5.6

sudo update-alternatives --set php /usr/bin/php5.6

sudo service apache2 restart

从 PHP 5.6 到 PHP 7.0:

sudo a2dismod php5.6

sudo a2enmod php7.0

sudo update-alternatives --set php /usr/bin/php7.0

sudo service apache2 restart

推荐