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

升级到macOS会破坏PHP/MYSQL配置,php,mysql,macos,config,macos-sierra,Php,Mysql,Macos,Config,Macos Sierra,所以我最近升级到macOS Sierra(测试版),它破坏了我的PHP/MySQL配置。。。没什么好惊讶的,但是。。。奇怪的是,一些快速终端命令向我显示PHP和MySQL都已启动并正在运行!例如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

所以我最近升级到macOS Sierra(测试版),它破坏了我的PHP/MySQL配置。。。没什么好惊讶的,但是。。。奇怪的是,一些快速终端命令向我显示PHP和MySQL都已启动并正在运行!例如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
所以问题是操作系统找不到或无法加载PHP。。。有没有办法解决这个问题?似乎是一条不正确的路径,但想知道是否是操作系统方面的任何变化导致了这种情况?操作系统中没有多少关于这个问题的信息。希望与最近遇到此问题的其他开发人员或可能更好地了解如何重新启动和运行的人员联系


提前感谢您的帮助,在此期间,我将继续我的修复尝试,希望这能很快得到解决。

我遇到了类似的问题。似乎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 libexec/apache2/libphp5.so行的注释,我使php再次工作。我希望这会有所帮助。

有很多配置文件已经被替换,因此您需要检查所有配置文件并重置整个配置。苹果公司的好人确实帮了大忙,他们确保每一个配置选项都至少保存在硬盘上的某个地方

接下来,你会发现你的MySQL不工作了,它的版本改变了,数据库也不再是你留下的地方。但不要急着简单地启动恢复选项,只需将数据库从以前的位置(如果您可以找到它们)复制到新位置(如果您知道它在哪里)。但是你可能还需要找到my.cnf-它不见了!我找不到旧的,新的也没有告诉我旧的去了哪里

但是不要去改变数据库的位置——它需要在“数据”文件夹中。任何试图移动它的行为都会导致你的数据幽灵般地出现在办公室的屏幕上

最后,我们回到php和扩展。是的-有一对丢失了,我的是mcrypt和memcache,但不要惊慌,你可以在一个名为“extensions”的文件夹中找到副本,但找到该文件夹将涉及你解决一系列策略游戏-祝你好运

顺便说一句,如果你在找到“extensions”文件夹之前阅读了这篇文章,那其实并不重要,因为这些扩展不适用于已安装的php版本,所以如果你找不到它们也没什么关系。只需下载源代码,编译,制作,安装,做两次,也许三次就可以了,但还是不行

我希望这真的帮助了一些人——我很高兴现在一切都解决了

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


要是我留在埃尔卡皮坦就好了

使用操作系统附带的版本会给你留下一个非常过时的版本。为什么不使用抓取一个更新的版本,一个你完全控制的版本呢?假设你指的是PHP版本。。。我试试看,我已经安装了自制软件。我会回来报到的。谢谢@tadmanYeah,PHP版本。该操作系统与旧版本的PHP捆绑在一起,PHP在非常保守的基础上进行更新。如果您想要最新版本(推荐给任何从事PHP开发的人),您需要像Homebrew这样的工具来安装它。Python、Ruby、Node.js等也是如此。@tadman虽然自制解决方案适用于我的个人工作站(家庭办公室),但由于严格的防火墙规则,我还有另一个办公室,我甚至无法安装自制、Node、npm(任何命令行)等。我同意你的观点,使用“开箱即用”版本也不是我的建议,但我将保留这个问题,不幸的是,我有一个工作区,在那里它是我唯一的选择(使用操作系统版本)。再次感谢您的帮助。在干净的操作系统安装和升级中,您会得到不同的结果吗?如果您能够成功运行,能否向我们展示您的vhost配置?我在apache上有一个错误,它说:无法加载libexec/apache2/mod_authn_default.so,当我尝试我的一个本地网站时,我收到了一条“It Works”消息:(我将尝试在httpd.config中取消对php设置的注释,感谢您的nugget sixstring!@tomzi如果您得到“它正在“localhost”上运行,然后用户目录的路径需要更改。@sixstring在重新取消对httpd.config文件的注释,然后编辑我的httpd-userdir.conf文件以取消对那里的php调用的注释后,一切都恢复正常。我的“localhost”重新