# service apache2 start
* Starting web server apache2
AH00112: Warning: DocumentRoot [<removed>/public_html] does not exist
*
* The apache2 instance did not start within 20 seconds. Please read the log files to discover problems
/var/apache2/error.log:
[Sun Mar 19 15:15:41.234542 2017] [ssl:warn] [pid 6491] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Mar 19 15:15:41.272641 2017] [ssl:warn] [pid 6492] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Mar 19 15:15:41.272744 2017] [core:error] [pid 6492] (13)Permission denied: AH00099: could not create /var/run/apache2/apache2.pid
[Sun Mar 19 15:15:41.272765 2017] [core:error] [pid 6492] AH00100: apache2: could not log pid to file /var/run/apache2/apache2.pid
我刚刚将 Ubuntu (Server) 从 12.04 LTS 升级到 14.04 LTS,因此将 Apache 从 2.2 升级到 2.4。我已经更新了大部分配置,但出于某种原因,尽管我尝试了所有有意义的权限组合,Apache 似乎仍无法写入自己的 pid 文件:
drwxrwxr-x 2 root www-data 40 Mar 19 14:55 /var/run/apache2
Apache 没有 chrooting,SELinux 已禁用。我已以 www-data 身份登录并测试它是否具有创建 pid 文件的权限,结果确实如此。
我认为有关文档根目录不存在的行是同样的问题,因为 www-data 可以通过 acls 访问它。我还关闭了 Mutex 指令,该指令导致 Apache 抱怨无法创建互斥文件,其方式与此 pid 文件完全相同,但位置完全不同。
我想不出是什么原因导致的这种情况,并希望得到一些帮助。
答案1
我无法评论,或者我会将其添加为评论而不是答案,但我的 /var/run/apache2 由 root 所有
drwxr-xr-x 2 root root 60 Mar 18 18:50 apache2
确保 /var/www 具有正确的权限。我现在使用的是 16.04,但我记得曾经我所有的 apache 文件都在 /var/www 文件夹中,而现在它们都在 /var/www/html 中,所以 ymmv
drwxr-xr-x 3 root root 4096 Mar 7 00:22 www
drwxr-xr-x 3 www-data www-data 4096 Mar 11 21:07 html
如果你有一个 html 文件夹,可以运行
sudo chown -R www-data:www-data /var/www/html
答案2
这个问题现在已经解决了。原来这是因为 Apparmor 不允许创建 pid 文件,尽管配置文件中明确允许这样做。等我弄清楚发生了什么事情后,我会发布更多详细信息。