我在 Centos7 上,我已经使用 remi repo 启用了多个 php 版本,例如:
yum-config-manager --enable remi-php56
yum-config-manager --enable remi-php71
yum-config-manager --enable remi-php72
yum-config-manager --enable remi-php73
然后安装软件包:
yum install php{version}
yum install php{version}-php-{extension}
我已经设置了 PHP5.6,如下所示:
sudo update-alternatives --set php /usr/bin/php56
当我制作 php-v 时:
PHP 5.6.40 (cli) (built: Sep 29 2020 11:38:05)
但是当我转到我的 phpinfo() 文件时,我得到 PHP 版本 7.3.23
在 centos/RH 中我们无法制作 :
sudo a2enmod php56
所以我很困惑,我不知道为什么 httpd 解释版本 7.3.23
我如何为 httpd 设置 PHP 特定版本?
你被2套套餐搞糊涂了:
请参阅 存储库常见问题解答。
如果你想安装并运行多个版本,你必须使用SCL并切换到FPM(而不是mod_php,这是CentOS 8上的默认方式)。
简而言之,将每个 FPM 实例配置为在特定套接字(网络端口或 UDS)上运行,并使用 SetHandler 指令将 Apache 配置为每个虚拟主机、项目、目录使用正确的版本。
我建议您阅读PHP配置技巧
您还可以阅读我的PHP工作站
要配置 Apache 使用特定版本的 PHP,您需要为 Apache 安装相应的
PHP
模块,然后配置 Apache 使用该模块
为 Apache 安装 PHP 模块
首先,您需要为 Apache 安装所需 PHP 版本的 PHP 模块。您可以使用
yum
来完成此操作
sudo yum install php56-php
将
php56
替换为您要使用的 PHP 版本
配置 Apache 以使用 PHP 模块
安装Apache的PHP模块后,您需要配置Apache才能使用它。您可以通过编辑 Apache 配置文件来完成此操作。
在文本编辑器中打开 Apache 配置文件
位置路径 -
/etc/httpd/conf/httpd.conf
或位于名为 conf.d
的目录中
找到加载 PHP 模块的行。它可能看起来像这样
LoadModule php7_module modules/libphp7.so
将
php7_module
替换为 php56_module
或您安装的 PHP 版本的相应模块名称
例如 -
LoadModule php56_module modules/libphp56.so
重新启动Apache
进行更改后,重新启动 Apache 以使更改生效
sudo systemctl restart httpd
完成这些步骤后,Apache 应该使用指定版本的 PHP。您可以通过在网络浏览器中再次访问您的
phpinfo()
文件来验证这一点。