我跟着本指南关于如何从我的 Amazon Linux 2 实例上的 Remi 存储库安装 PHP 5.6。现在我需要将放置在中的安装连接/opt/remi/php56/
到之前使用不同版本 PHP(我已卸载)的已安装 apache。
我怎样才能做到这一点?
据我所知,我可以使用 CGI 或 来实现这一点mod_php
。当我卸载另一个 php 版本时,旧的 CGI 文件夹被删除了。我似乎找不到找到或安装 的方法mod_php
。当我输入:
yum install mod_php
我被提示从 Amazon repo 下载最新版本的 PHP。我遵循的指南已经安装了我想要的 PHP 版本。
我读过许多指南,它们只是告诉你要做什么:
yum install httpd php
然后只需重新启动 Apache 服务,一切就都正常了。这也是我第一次安装错误 PHP 版本时的情况。现在我必须考虑我从特定的 repo 安装特定版本的 PHP,这会修改部署位置,并且之前卸载了 PHP,这可能会删除某些文件。
答案1
运行此命令时:
yum install mod_php
它将自动默认为亚马逊存储库。
因此,如果您通过 Remi 的 repo 安装了 PHP 5.6,则应使用以下命令:
yum install php56-mod_php
请注意php56-
前缀。这是让它工作的关键。这对于您将来安装的任何扩展都适用。
也就是说,您最好按照原来的方式卸载 PHP,然后执行此操作。
去使用 Remi 的 RPM 存储库配置向导位于此处.并按照这些说明进行操作。
基本上你应该指向正确的存储库,我相信你已经做到了。然后运行此命令。
sudo yum install yum-utils
然后运行此命令:
sudo yum-config-manager --enable remi-php56
完成后,您可以按照最初尝试的方式安装 PHP 5.6,无需担心:
yum install mod_php
不需要前缀!
答案2
现在,这个包似乎被称为。如果你在 的输出中php<majmin>-php
寻找,你将一无所获。mod_php
yum search
为了PHP 8.2.x 的示例,启用 Remi repo 后,您可以通过安装以下内容获取 Apache 模块:
# this brings in php82-php-cli, php82-php-common, and php82-runtime
# as dependencies
sudo yum install php82
# then…
sudo yum install php82-php
请注意,这还将尝试httpd
从 Remi 存储库中引入(Apache Web 服务器),这可能会与已安装的 冲突httpd
,并且相对于可用的版本而言可能是过时的版本例如这软件集合库。
不幸的是,我没有任何关于如何解决这个问题的具体建议,IE,保留http24-http
SCL 并使用 Remi repo 中的 PHP。如果你做。
答案3
我按照本指南了解如何在我的 Amazon Linux 2 实例上从 Remi 存储库安装 PHP 5.6。
请注意,这是基于EL-7 将于 6 月停产。
因此,我诚挚地建议使用更新的发行版(顺便说一句,大多数发行版都不会有 PHP 5.6,因为它的 EOL 已经超过 5 年了)
为了正确配置和使用存储库,您应该遵循向导说明而不是在互联网上找到的一些随机的 HowTo。
特别是如果你需要单一版本,您不需要 php56-* 软件包(该软件包设计用于并行安装多个版本),而是需要来自remi-php56存储库。如常问问题。
如果确实需要多个版本,则不能使用 mod_php,而必须使用 php-fpm(现在在 EL-8 和 EL-9 中默认使用)
如果你想使用httpd24SCL,您还需要使用 php-fpm(因为 mod_php 设计为与默认httpd)。
你可以阅读PHP 配置提示或者我的 PHP 工作站