GAV*_*GAV 14 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
Run Code Online (Sandbox Code Playgroud)
Ada*_*tla 33
您的命令看起来正确.你在测试之前重启了apache吗?
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
PHP模块php5.6所作的OndrejSurý只能启用:
sudo a2dismod php7.0
sudo a2dismod php7.1
sudo a2dismod php7.2
sudo a2dismod php7.3
sudo a2enmod php5.6
sudo update-alternatives --set php /usr/bin/php5.6
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
我发现这个设置与PREFORK以外的任何其他MPM模块都不兼容.在启用php5.6 mod之前,您必须首先确保禁用所有其他MPM模块.
如果mod无法启用,则可能必须尝试禁用其他MPM.
sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event
Run Code Online (Sandbox Code Playgroud)
然后尝试再次启用mod,因为它应该自动启用正确的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
Run Code Online (Sandbox Code Playgroud)
仅供参考,我喜欢将这些命令放入我的'.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 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 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 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 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 a2enmod php7.3 && sudo update-alternatives --set php /usr/bin/php7.3 && sudo service apache2 restart'
Run Code Online (Sandbox Code Playgroud)
GIST:https://gist.github.com/djravine/376e81a018ba2b980750a5578deb3935
小智 14
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
Run Code Online (Sandbox Code Playgroud)
从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
Run Code Online (Sandbox Code Playgroud)
如果sudo a2dismod php8.0不禁用 php8.0 模块并且您无法将 php 模块切换到 php7.4 那么您可以尝试以下操作:
sudo a2disconf php8.0-fpm
sudo a2enmod php7.4
sudo systemctl reload apache2
Run Code Online (Sandbox Code Playgroud)
要将php7配置为与服务器一起运行,您需要进行一些配置:1.确保您删除了php / php5的所有痕迹。打开一个终端,然后:
cd /etc/apache2/mods-enabled
ls -la
Run Code Online (Sandbox Code Playgroud)
输出不应包含任何php5.conf或php5.load,但如果包含,请执行以下操作:
# this is the proper way of disabling modules
sudo a2dismod php5
# run this only if the above command didn't remove the php5 sym-links
sudo rm php5.load
sudo rm php5.con
Run Code Online (Sandbox Code Playgroud)
现在添加php7.0.conf和php7.0.load代替:
# this is the proper way of enabling modules
sudo a2enmod php7.0
# run this only if the above command didn't create the php7.0 sym-links
sudo ln -s php7.0.conf ../mods-available/php7.0.conf
sudo ln -s php7.0.load ../mods-available/php7.0.load
Run Code Online (Sandbox Code Playgroud)
ls -la php *的输出应如下所示:
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load
Run Code Online (Sandbox Code Playgroud)
处理完模块之后,我们现在进入/ etc / apache2 / conf-enabled目录。sudo rm也在这里删除任何php / php5痕迹
然后,如果需要,请执行以下操作:
# the proper way of enabling configs
sudo a2enconf php7.0-cgi
sudo a2enconf php7.0-fpm
# do those commands only if the above didn't work out
sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf
Run Code Online (Sandbox Code Playgroud)
ls -la php *的输出应如下所示:
lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0
Run Code Online (Sandbox Code Playgroud)
并重新启动apache。
我已经按照以下步骤解决了。
has*_*san -1
a2enmod是与 php 相关的命令apache2whilephp -v是与 php 本身相关的命令。
当您运行以下命令时
sudo a2enmod php5.6
Run Code Online (Sandbox Code Playgroud)
可以这么说,您是在与 apache2 对话,而不是与 php 对话[嘿 apache,为我启用 php5 模块而不是 php7.0]。
1)删除当前的 php 版本 7 ,然后下载您想要的 php 版本。
或者
2) 下载 php 5 和 php 7
我认为php-version将是做类似事情的一个很好的起点。