重新配置 PHP 5.6 以在 MacOS 10.13 High Sierra 上运行

重新配置 PHP 5.6 以在 MacOS 10.13 High Sierra 上运行

我需要在必须更新到 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 正在尝试加载它的版本而不是运行我的版本。

相关内容