我正在使用最新的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 中。
答案 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将修复它
我仍然不清楚,在将扩展名添加到php.ini后会发生什么。即使删除它也无法解决问题。