升级到 macOS Sierra 会破坏 PHP/MYSQL 配置

Upgrading to macOS Sierra breaks PHP/MYSQL configuration

所以我最近升级到 macOS Sierra(测试版)并且它破坏了我的 PHP/MySQL 配置...这并不奇怪但是...奇怪的是一些快速终端命令显示我认为 PHP 和 MySQL 都已启动并且 运行ning!例如... PHP:

myusername@myworkstation  /private/etc/apache2/other  php -v
PHP 5.6.24 (cli) (built: Aug  9 2016 16:05:05)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

所以,我决定运行

apachectl configtest

问题就在这里:

httpd: Syntax error on line 537 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+entropy-php.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _environ\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n

所以问题是 OS 找不到或无法加载 PHP...有什么解决办法吗?似乎是一条不正确的路径,但想知道 OS 端是否有任何变化导致了这种情况? OS Sierra 带宽中关于此问题的内容不多。希望与最近 运行 解决此问题的其他开发人员联系,或者与可能更了解如何恢复并再次 运行ning 的人联系。

在此先感谢您的帮助,与此同时,我将继续我的修复尝试,希望能尽快解决这个问题。

我遇到了类似的问题。似乎 sierra 覆盖了配置文件。我通过取消注释 httpd.conf 中的 php loadmodule 行使 php 工作。我的网站又能用了,但我所有的虚拟主机东西似乎都不见了。如果有帮助,我将重新创建配置并添加到此。

今天,当我意识到 macOS Sierra 更新搞砸了我的本地主机时,我注意到了这一点。

经过一些挖掘,配置文件似乎被覆盖了。我发现开发人员非常友好,可以在覆盖 /etc/apache2/ 中的默认配置之前将您之前的配置文件保存在备份文件中。

对于更新前的原始 httpd.conf,查找名为 "httpd.conf~pre-update"

的文件

在 /etc/apache2/extra/ 中,对于所有原始文件,查找名称末尾带有“~previous”的文件。

.bak 文件现在是新的 macOS Sierra apache 配置的备份(所以我认为如果您使用 .bak 进行备份,这些文件也会被覆盖,但不是 100% 确定)。

在这一点上,我不确定将原始文件设置回默认值的后果,但是当我恢复原始配置文件时,一切都神奇地恢复了。希望这可以帮助其他人解决这个问题。

这个问题困扰我好几天了。通过取消注释 httpd.conf 中的 LoadModule php5_module.so 行,我让 php 再次工作。希望对您有所帮助。

有许多配置文件已被替换 - 因此您需要检查所有这些文件并重置整个配置。 Apple 的好人确实提供了帮助,确保每个配置选项至少保存在您的驱动器上的某个位置!

接下来,您会发现您的 MySQL 无法正常工作,它已更改版本并且数据库不再位于您离开它们的位置。但是不要恐慌,只需启动进入恢复选项,将数据库从以前的位置(如果你能找到它们)复制到新位置(如果你知道它在哪里)就足够了。但是您可能还需要找到 my.cnf - 它不见了!旧的找不到了,新的也不告诉我旧的去了哪里

但是不要更改数据库的位置 - 它需要在那个 'data' 文件夹中。任何移动它的尝试都会导致它在整个办公室的屏幕上出现你的数据的幽灵般的幻影。

最后我们回到 php 和扩展。是的 - 有几个丢失了,我的是 mcrypt 和 memcache,但不要惊慌,你可以在一个名为 'extensions' 的文件夹中找到隐藏的副本,但找到该文件夹​​将涉及你解决一些战略游戏顺便 - 祝你好运。

顺便说一句 - 如果您在找到 'extensions' 文件夹之前正在阅读本文,那并不重要,因为这些扩展不适用于 php 的已安装版本,所以它没有如果您找不到它们,那真的很重要。只需下载源代码、编译、制作、安装,重复两次,最好重复三遍,但仍然无法正常工作。

我希望这真的对某人有所帮助 - 我很高兴现在一切都解决了。

你不认为有人应该为此负责吗?

要是我留在 El Capitan 就好了!