参考网上解决方案:
问题描述:由于删除了/private/var/log下面的日志,,导致重启电脑后apache无法正常工作。
后果:重启电脑后apache正常运行,访问localhost或127.0.0.1无法找到服务器。
探索:问题出现后,由于$ sudo apachectl start不会报任何错,但是访问localhost或127.0.0.1始终失败。
可能情况1: 没有监听80端口
排除可能1:监听了80端口的。
可能情况2:hosts文件配置有问题
排除可能2:localhost以前就没问题,而且没改过,排除。
怀疑点:80端口被占用
排除怀疑点:终端运行$ sudo lsof -i TCP:80 -s TCP:LISTEN,没有发现其他程序占用,排除这个疑点。
终端$ sudo /usr/sbin/httpd -k start 问题出现了:No such file or directory: httpd: could not open error log file /private/var/log/apache2/error_log.
想起来删除了log下的所有日志文件,最后创建文件夹apache2,就ok了。
解决方法是:在log目录下,新建一个名为apache2的文件夹(终端$ sudo mkdir /private/var/log/apache2),然后重启apache(终端$ sudo apachectl restart),会自动在apache2里面重新生成apache需要的日志,便可正常访问和使用apache服务了。
=====================可爱的分割线==========================
2016/3/3补充:
最近对https做了一件事,就是生成pem文件用于抓包解码,不久后apache就不能访问了,查了好多资料都无法解决,也不知是不是这个原因导致的,不过想想动相关这一块的也就这件事了,后来查看了一下日志:
/private/var/log/apache2/error_log
发现有很多 AH00016: Configuration Failed 的错误
通过
apachectl configtest
提示
Syntax OK
最后在httpd-vhost.conf中把HTTPS的站点配置去掉。
OK!