apache重启错误分段错误:11 $HTTPD“$@”
Posted
技术标签:
【中文标题】apache重启错误分段错误:11 $HTTPD“$@”【英文标题】:apache restart error Segmentation fault: 11 $HTTPD "$@" 【发布时间】:2017-09-29 07:55:51 【问题描述】:我是 Web 开发的新手,想在 mac os Sierra 上创建自己的本地服务器以进行一些开发。我已经学习了一些关于启动和运行 apache、php 和 mysql 的教程,并且只完成了 php 部分,这是我目前失败的地方。
我设法通过http://localhost/~username 访问本地主机,并在那里找到了我的目录,但是一旦我取消注释httpd.conf 中的php LoadModule,我访问本地主机的能力就会失败,并且出现错误ERR_CONNECTION_REFUSED
。这是在我尝试使用
sudo apachectl -k restart
哪个抛出了这个错误:
httpd 没有运行,正在尝试启动 /usr/sbin/apachectl:第 92 行:11399 分段错误:11 $HTTPD "$@"
来自tail -f /var/log/apache2/error_log
的错误日志有以下内容:
AH00112:警告:DocumentRoot [/usr/docs/dummy-host.example.com] 不存在 AH00112:警告:DocumentRoot [/usr/docs/dummy-host2.example.com] 不存在 [Mon May 01 19:33:52.138346 2017] [mpm_prefork:notice] [pid 3454] AH00163: Apache/2.4.23 (Unix) PHP/7.1.1 已配置——恢复正常操作 [Mon May 01 19:33:52.138434 2017] [core:notice] [pid 3454] AH00094:命令行:'/usr/sbin/httpd -D FOREGROUND' [2017 年 5 月 1 日星期一 19:37:22.694456] [mpm_prefork:notice] [pid 3454] AH00169:捕获 SIGTERM,正在关闭 AH00112:警告:DocumentRoot [/usr/docs/dummy-host.example.com] 不存在 AH00112:警告:DocumentRoot [/usr/docs/dummy-host2.example.com] 不存在 [Mon May 01 19:53:54.632167 2017] [mpm_prefork:notice] [pid 4059] AH00163: Apache/2.4.23 (Unix) PHP/7.1.1 已配置——恢复正常操作 [Mon May 01 19:53:54.632251 2017] [core:notice] [pid 4059] AH00094:命令行:'/usr/sbin/httpd -D FOREGROUND' [2017 年 5 月 1 日星期一 20:04:26.379765] [mpm_prefork:notice] [pid 4059] AH00169:捕获 SIGTERM,正在关闭
我已经花了几个小时查看有关 *** 以及其他来源的类似主题,但无济于事。我对这一切也很陌生,因此我对很多术语都不太了解。根据我的理解(无论它可能是什么),这可能与一个坏的模块或 php7 没有正确链接有关?
我使用的是apache版本:
Server version: Apache/2.4.23 (Unix)
Server built: Aug 8 2016 16:31:34
php version 7.1.1
configtest 给了我以下信息:
AH00112:警告:DocumentRoot [/usr/docs/dummy-host.example.com] 不存在 AH00112:警告:DocumentRoot [/usr/docs/dummy-host2.example.com] 不存在 语法OK
任何建议将不胜感激。对下一步该做什么彻底失望了:(
【问题讨论】:
您是否尝试过阅读错误信息?是英文的,仅供参考。/usr/docs/dummy-host.example.com
目录不存在。所以先手动创建它,看看会发生什么。这不是火箭科学。编程就是阅读正在发生的事情并修复它。
或许最好在serverfault.com上提问
我已经阅读了所有内容,但正如我所说,我一直在关注教程,因为我是新手。其中没有提到创建这些目录,所以我没有。这些目录的目的是什么@xorifelse
谢谢@nogad。我当然也会在那里添加这篇文章
这将是(根据错误消息)您的文档根目录。您的网络服务器的根文件夹。 localhost
将引用 /usr/docs/dummy-host.example.com/index.html
【参考方案1】:
启动 Apache 时出现“Segmentation fault”错误,因为 Apache 试图同时加载新旧版本的 php。查看这些说明:https://coolestguidesontheplanet.com/upgrade-php-on-osx/,安装脚本会在
中创建一个加载新 php 7 版本的文件/etc/apache2/other/+php-osx.conf
该脚本还假定通过在 apache 配置文件中禁用旧 php 版本的加载,
/etc/apache2/httpd.conf
注释掉这一行:
#LoadModule php5_module libexec/apache2/libphp5.so
但它并没有为我做到这一点。一旦我手动将其注释掉,Apache 又开始使用
sudo apachectl -k restart
【讨论】:
将 php 5.6 升级到 7 后遇到同样的问题。谢谢 这救了我的皮。我吹了大约 3 个小时试图弄清楚这一点。 在通过 Homebrew 安装 Apache 的 OSX 上,实际配置在/usr/local/etc/httpd
而不是 /etc/apache2
所以我不得不在那里更改它。否则效果很好,谢谢
谢谢你,让我几乎不必放弃并重新启动我的机器。
这对我帮助很大。在我的浏览器中得到随机 ERR_EMPTY_RESPONSE,检查日志并看到 seg 错误,这导致我来到这里。不得不在我的/etc/apache2/httpd.conf
文件中注释掉这一行:LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
。似乎它已经被加载到其他地方,当我这样做时只给了我一个警告apachectl configtest
【参考方案2】:
如果你想在你的本地主机上创建虚拟主机,你应该更改 httpd-vhosts.conf 、 hosts 文件和 httpd.conf 以启用虚拟主机 ....
但是
如果您只想安装 XAMPP 或 WAMP,则无需更改文件,在 htdocs 文件夹(XAMPP)或 www 文件夹(WAMP)中创建新文件夹,然后在地址栏中输入如下: 本地主机/新文件夹
重新安装 XAMPP 并在 htdocs 文件夹中创建新文件夹项目。
目录 htdocs 文件夹:/Applications/XAMPP/xamppfiles/htdocs/(创建项目文件夹)
启用 Apache 和 Mysql
然后在地址栏输入 firefox 或 chrome :localhost/projectfoldername
请阅读这篇文章: https://donatstudios.com/PHP-in-OS-X-Yosemite
下载 Xampp:https://www.apachefriends.org/download.html
【讨论】:
虽然我没有任何 OSX 经验,但我不知道这将如何解决问题。以上是关于apache重启错误分段错误:11 $HTTPD“$@”的主要内容,如果未能解决你的问题,请参考以下文章
部署OpenStack问题汇总--解决apache启动错误"httpd:Could not reliably determine..."
linux系统用service httpd restart重启apache2 提示httpd:unrecognized service 该怎么解决
Centos下Apache遇到/usr/lib64/libnsssysinit.so: undefined symbol: PR_GetEnvSecure错误