我出于好奇问这个问题。有没有办法用通过 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
获取更多配置选项,如配置文件位置。