我在服务器上安装了Fedora 25,需要将php从7降级到5.6。 我做了以下几件事:
dnf remove php dnf remove php-common wget https://rpms.remirepo.net/fedora/remi-release-25.rpm rpm -Uvh remi-release-25.rpm dnf --enablerepo=remi install php56 php56-php-common php56-php-cli php56-php-mbstring php56-php-mcrypt php56-php-pear php56-php-xml php56-runtime php56-php-mysqlnd
一切正常,但现在一切都被命名为php56而不是PHP,所以系统找不到任何东西。 例如:
# php -r "echo 'Current PHP version: ' . phpversion();" -bash: /usr/bin/php: No such file or directory # php56 -r "echo 'Current PHP version: ' . phpversion();" Current PHP version: 5.6.30
我如何采取最后一步,使一切(包括包)像以前一样工作?
我试图创build一个符号链接如下,但PHP代码不能从网上运行,所以Apache-> PHP链接被打破。
cd /usr/bin ln -s /opt/remi/php56/root/usr/bin/php php
提前致谢。
这就是软件集合的devise:并行安装而不改变基本系统,并允许多个版本。 所以/ usr / bin / php不是故意提供的。
你可以阅读我的PHP工作站 。
对于mod_php (apache模块),如果你可以删除“php”(基础包)并安装“ php56-php ”(它在你的列表中不存在),它可以开箱即用。 如果你不能删除“php”,你可以禁用它的LoadModule指令(/etc/httpd/conf.modules.d/15-php.conf),这样php5模块就会被加载(/ etc / httpd / conf。 modules.d / 10-php56-php.conf)。
对于FPM (FastCgi服务器),当php56-php-fpm服务运行时,只需要将path调整到web服务器configuration(apache,nginx或lighttpd)中的套接字,
对于CLI ,您可以使用模块命令(并且大多数应用程序会在PATH中findphp和相关的命令)
$ module load php56 $ php -v PHP 5.6.30 (cli) (built: Jan 20 2017 17:58:52)
如果你真的想要一个单一的版本,你可以创build符号链接,它将工作:
$ ln -s /opt/remi/php56/root/usr/bin/php /usr/bin/php $ php -v PHP 5.6.30 (cli) (built: Jan 20 2017 17:58:52)