升级到macOS Sierra
后,我的apache无法启动。
apache error_log
:
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist
AH00557: httpd: apr_sockaddr_info_get() failed for username.local
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message (13)Permission denied:
AH00072: make_sock: could not bind to address [::]:80 (13)Permission denied:
AH00072: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down*
我已按照这些说明取得了成功:http://digitalshore.io/local-web-development-environment-apache-macos-sierra-10-12/
答案 0 :(得分:12)
中的前两个评论虚拟主机设置
的httpd-vhosts.conf
对于3,4 uncomment ServerName并在
中指定值的httpd.conf
例如:ServerName local_server:80
在/ etc / hosts中添加相同的值以按服务器名称访问。
5,6因为端口80被其他应用程序使用
sudo lsof -i:80
答案 1 :(得分:1)
可以通过为apr_sockaddr_info_get()
中的localhost
分配有意义的值(例如ServerName
)来解决涉及/etc/apache2/httpd.conf
的错误。
使用/etc/apache2/httpd.conf
打开sudo
。
参考: https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions
答案 2 :(得分:0)
就我而言,通过添加以下内容解决了问题:
127.0.0.1 MacBook-Air-de-xxxxxx.local
在/etc/hosts
档案中。
找到计算机的确切名称,检查共享设置:
答案 3 :(得分:0)
AH00558:httpd:无法可靠地确定服务器的完全限定域名。
您需要通过以下方式识别httpd.conf
Apache配置文件:
apachectl -t -D DUMP_INCLUDES
然后编辑它并使用ServerName
取消注释该行(确保它具有有效的服务器名称)。 E.g。
ServerName localhost
AH00072:make_sock:无法绑定到地址[::]:80(13)权限被拒绝
您需要以root用户身份启动Apache服务,否则该进程无权绑定到端口80,因为1024以下的所有端口都需要管理权限。
所以你需要运行它:
sudo apachectl start