首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OS +XAMPP7.1.9-0+扩展mongodb.so未启动

问OS +XAMPP7.1.9-0+扩展mongodb.so未启动
EN

Stack Overflow用户
提问于 2017-10-18 14:57:03
回答 1查看 407关注 0票数 0

我正在使用最新的OS X塞拉利昂10.12.6,用PHP 7.1安装XAMPP 7.1.9,并安装最新的homebrew/homebrew core (git修订版7598;最后一次commit 2017-10-18)来实现这个目标:使用最新的mongodb扩展(即替换旧的mongo扩展)。

在像这样干净地安装mongodb之后:

代码语言:javascript
复制
 brew tap homebrew/php
 brew install php71-mongodb

我在以下文件中找到了mongodb扩展:

代码语言:javascript
复制
 /usr/local/opt/php71-mongodb/mongodb.so

我将其添加到XAMPP的php.ini文件中-安装:/Applications/xamppfiles/等

代码语言:javascript
复制
extension="/usr/local/opt/php71-mongodb/mongodb.so"

之后,我将分别重新启动Apache2服务:/Applications/xamppfiles/ctlscript.sh重新启动apache

我所能收到的唯一回复就是一个错误:

/Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf:40语法确定/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上重新启动服务也会修复这个问题。

即使在从mongodb.so中删除对php.ini的引用之后,也会修复这个问题。

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

EN

回答 1

Stack Overflow用户

发布于 2017-10-18 14:57:03

参见下面的更新

在这个线程中,我找到了一种使用可工作的mongodb扩展重新启动Apache2服务的方法:

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

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

代码语言:javascript
复制
/Applications/XAMPP/xamppfiles/bin/httpd -E /Applications/XAMPP/xamppfiles/logs/error_log

仅此而已。

但我仍然不明白这一切是如何联系在一起的。当再次使用XAMPP重新启动时,它再次无法工作。但是UI在一开始就起作用了。所以,mongodb文件的安装(或者是自制的)破坏了XAMPP安装中的某个地方。

更新,第二天

我安装了一个新的XAMPP,从划痕中花了一段时间才知道XAMPP是如何启动apache的,这是一个命令链:

代码语言:javascript
复制
/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

之后,我在php.ini文件中添加了著名的monGodb.so-行文。

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

(13)权限被拒绝: AH00086: httpd:未能打开错误日志文件AH00086/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类型的php.ini中,从error.log中移除写标志

因此,这很容易修复。

代码语言:javascript
复制
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:从命令行以sudo方式启动Apache将修复它

未解之谜

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46813236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档