Centos httpd php 版本与 php 版本命令行不同

问题描述 投票:0回答:2

我在 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 特定版本?

php linux centos redhat
2个回答
1
投票

你被2套套餐搞糊涂了:

  • 基础包 (php-*),每个版本 1 个存储库 (remi-php##),以及可以安装单个(默认)版本的位置
  • SCL 包(php##-php-*)设计用于多个版本并行安装

请参阅 存储库常见问题解答。

如果你想安装并运行多个版本,你必须使用SCL并切换到FPM(而不是mod_php,这是CentOS 8上的默认方式)。

简而言之,将每个 FPM 实例配置为在特定套接字(网络端口或 UDS)上运行,并使用 SetHandler 指令将 Apache 配置为每个虚拟主机、项目、目录使用正确的版本。

我建议您阅读PHP配置技巧

您还可以阅读我的PHP工作站


0
投票

要配置 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()
文件来验证这一点。

© www.soinside.com 2019 - 2024. All rights reserved.