我需要在必须更新到 10.13 的 Mac 上运行 PHP 5.6。因此我重新安装了 5.6,验证了它的位置,并将其添加到 httpd.conf:
LoadModule php5_module libexec/apache2/libphp5.so
...并确保 PHP 7 的行仍然被注释掉。重新启动 Apache,Apache 启动正常,没有抛出任何错误,并且运行正常,但没有 PHP!因此,作为测试,我注释掉了 PHP 5 行并取消注释了 PHP 7 行:
LoadModule php7_module libexec/apache2/libphp7.so
...重新启动 Apache,它再次正常工作,但仍然没有 PHP!因此,我查询了 httpd 二进制文件以确保我编辑的 httpd.conf 正确,结果确实如此。两个版本的 PHP 都无法运行,而且在启动 Apache 时也不会导致错误。(当我说 Apache 运行但 PHP 没有运行时,我的意思是浏览器显示:
<?php phpinfo(); ?>
...无需渲染。 帮忙? 我已经没有办法让 PHP 5.6 运行了。
答案1
使用 PHP5.6 和 HighSierra
启用共享 Apache Handler 模块的构建 确保您安装了最新版本的 PHP56 并启用了 http 选项(根据需要安装/升级/重新安装)
$brew upgrade php56 --with-httpd
在 Apache2 配置文件中链接模块在 apache2 配置文件 /etc/apache2/httpd.conf 中添加以下语句
LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/apache2/libphp5.so
或者,对于较新版本 5.6.36_1 及以上版本(感谢@avidenic)
LoadModule php5_module /usr/local/Cellar/[email protected]/5.6.36_1/lib/httpd/modules/libphp5.so
添加 PHP5 配置文件
从 php7.conf 复制一份
$ cd /etc/apache2/other ; sudo cp php7.conf php5.conf
在 php5.conf 中将 php7_module 替换为 php5_module
重新启动 Apache 服务器
$ sudo /usr/sbin/apachectl restart
答案2
我必须重新安装 xcode 和支持 apache 的 php56 才能使其再次工作。
xcode-select --install
brew reinstall php56 --with-httpd
操作系统不再提供 libphp5.so,但它在文件系统中,因为我们刚刚安装了它。因此,您还必须更改 apache 配置文件以启用 php5:
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
答案3
我不知道您是否知道这一点,但 High Sierra 带有自己的 php 版本,请尝试运行此代码:
对于 $(brew list | grep php) 中的 i;执行 brew uninstall $i;完成
这对我有用,因为我遇到了同样的问题,然后我注意到 High Sierra 正在尝试加载它的版本而不是运行我的版本。