如何使用来自 repo 的 php 从源代码配置 apache2?

如何使用来自 repo 的 php 从源代码配置 apache2?

我出于好奇问这个问题。有没有办法用通过 yum 安装的 php 配置 apache2?或者反之亦然?因为根据我自己的经验和谷歌搜索,我们只能从 repo 安装两个包(yum install httpd php)或从各自站点上的源安装两个包。

希望有人可以澄清此事。我非常感激。谢谢。

答案1

简短的回答是“否”:

RPM 包有一个requires定义,这是为了确保安装之前所有必需的包都存在,yum 处理这些包requires并提供附加包的下载。

长答案:

当然,您也可以rpm --nodeps在手动下载后,选择手动安装每个 rpm 包,或者使用 yum 实用程序(例如)来规避这个问题downloadonly

那么,您的依赖链当然会断裂,通过 yum 进行更新将会失败,或者导致依赖包发生冲突/部署中断,您可能会导致系统陷入一片混乱。

在这种情况下,如果你必须有一个自定义的 apache2 部署,推出您自己的 RPM 并确保您有相关provides部分后面跟着一个conflicts: httpd部分。

provides部分应该模仿 httpd 的部分。

让我明确一点:你不应该这样做

但这是可能的。

php-cli / php-fpm 选项:

但是如果您没有安装 php 包(它需要:httpd),而是说 php-cli 包,然后再次从源代码编译 apache2,这是可能的,您可以使用 php-fpm 来提供所需的功能来替换 mod_php。

答案2

首先检查你的发行版中 apache 的安装位置,然后下载源代码,解压并执行以下操作:

./configure --prefix=/the/same/patch/as/in/package --with-mpm=worker --with-ssl=/usr/ --with-z=/usr/ --with-apr=/usr/ --with-apr-util=/usr/ --enable-so --enable-rewrite --enable-speling --enable-vhost-alias --enable-dav-fs --enable-dav-lock --enable-cgi --enable-cgid --enable-suexec --enable-info --enable-dav --enable-http --enable-ssl --enable-unique-id --enable-usertrack --enable-ident --enable-headers --enable-expires --enable-mime-magic --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache

./configure --help获取更多配置选项,如配置文件位置。

相关内容