Apache 2.4 升级后无法写入 pid

Apache 2.4 升级后无法写入 pid
# 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 文件,尽管配置文件中明确允许这样做。等我弄清楚发生了什么事情后,我会发布更多详细信息。

相关内容