OS X Sierra + XAMPP 7.1.9-0 +扩展名mongodb.so无法启动

时间:2017-10-18 14:57:03

标签: php mongodb macos xampp homebrew

我正在使用最新的OS X Sierra 10.12.6,XAMPP 7.1.9和PHP 7.1,我安装了最新的Homebrew / homebrew-core(git revision 7598; last commit 2017-10-18)来实现这个目标:使用最新的mongodb-extension(即替换旧的mongo-extension)。

像这样干净安装mongodb之后:

 brew tap homebrew/php
 brew install php71-mongodb

我找到了mongodb扩展名:

 /usr/local/opt/php71-mongodb/mongodb.so

我将它添加到我的XAMPP安装的php.ini文件中: /应用/ XAMPP / xamppfiles /等

extension="/usr/local/opt/php71-mongodb/mongodb.so"

之后我将分别重启XAMPP的Apache2服务:   /Applications/XAMPP/xamppfiles/ctlscript.sh 重启apache

我将收到的唯一回应是错误:

  

AH00548:NameVirtualHost无效,将在下一次删除   发布/Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf:40   语法OK /Applications/XAMPP/xamppfiles/apache2/scripts/ctl.sh:   apache没有运行AH00548:NameVirtualHost没有效果,将会是   在下一个版本中删除   /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf:40语法   OK /Applications/XAMPP/xamppfiles/apache2/scripts/ctl.sh:httpd   开始

奇怪的事情从这里开始:

当我使用XAMPP用户界面重启服务时,Apache2不再工作了。

甚至在CLI上重启服务也会解决这个问题。

从php.ini中删除对mongodb.so的引用后,

甚至将解决此问题。

问题是:我没有收到任何错误。不在 /Applications/XAMPP/xamppfiles/logs/php_error.log 中,也不在 /Applications/XAMPP/xamppfiles/logs/error.log 中。

1 个答案:

答案 0 :(得分:0)

请参阅下面的更新

我找到了一种方法,可以在此线程中使用mongodb-extension重新启动Apache2服务:

https://github.com/mongodb/mongo-php-driver/issues/247

使用此命令在CLI上重新启动服务帮助我:

/Applications/XAMPP/xamppfiles/bin/httpd -E /Applications/XAMPP/xamppfiles/logs/error_log

多数民众赞成。

但我仍然了解所有这些是如何连接的。再次使用XAMPP UI重新启动时,它再次无法正常工作。用户界面确实在开始时工作。所以,不知何故,安装mongodb文件(或者自制软件)会破坏XAMPP安装中的某些地方。

第二天更新

我从划痕中安装了一个新的XAMPP 需要一段时间才能找到XAMPP UI启动apache的功能,它是一系列命令:

/Applications/XAMPP/xamppfiles/ctlscript.sh start apache
-> 
/Applications/XAMPP/xamppfiles/apache2/scripts/ctl.sh start
->
/Applications/XAMPP/xamppfiles/xampp startapache 
-> 
/Applications/XAMPP/xamppfiles/bin/apachectl -k start -E /Applications/XAMPP/xamppfiles/logs/error_log -DSSL -DPHP
->
/Applications/XAMPP/xamppfiles/bin/httpd -k start -E /Applications/XAMPP/xamppfiles/logs/error_log -DSSL -DPHP

之后我将着名的mongodb.so-line添加到php.ini文件中。

从现在开始,我无法再使用UI启动Apache。所以我从上面的链中取出最后一个命令并执行它,结果如下:

  

(13)权限被拒绝:AH00086:httpd:无法打开错误日志文件   /应用/ XAMPP / xamppfiles /日志/ error_log中。 AH00548:   NameVirtualHost无效,将在下一版本中删除   /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf:40   (13)权限被拒绝:AH00072:make_sock:无法绑定到地址   [::]:80(13)权限被拒绝:AH00072:make_sock:无法绑定到   地址0.0.0.0:80没有可用的侦听套接字,关闭   AH00015:无法打开日志

查找#1:只需将扩展名添加到php.ini类中,即可从error.log中删除写入标记

所以,这很容易解决

sudo chmod a+w /Applications/XAMPP/xamppfiles/logs/error_log.

现在,这个问题的历史上第一次,我收到了来自error.log的真实错误消息,这告诉了我一些事情:

  

(13)权限被拒绝:AH00072:make_sock:无法绑定到地址   [:]:80   (13)权限被拒绝:AH00072:make_sock:无法绑定   地址0.0.0.0:80没有可用的侦听套接字,关闭   AH00015:无法打开日志

查找#2:从命令行启动Apache作为sudo将修复它

剩下的mysterys

我仍然不清楚,在将扩展名添加到php.ini后会发生什么。即使删除它也无法解决问题。