2013-04-22 13 views
2

有誰知道什麼可以在Apache的錯誤日誌(尤其是在Arch Linux的)導致此錯誤:錯誤:啓動後PID文件/run/httpd/httpd.pid不可讀(尚未?)。 (阿帕奇)

PID file /run/httpd/httpd.pid not readable (yet?) after start. 

該錯誤不從正常運行(一旦開始)停止Apache,但又是潛在顯着減緩我的服務重啓時間。

任何指導,將不勝感激。

+0

(1)不'/運行/ httpd'存在的(並且是您希望把pid文件?(2)是可寫的任何用戶運行Apache? – Wrikken 2013-04-22 21:30:10

+0

'/運行/ httpd'確實存在Apache運行在user:group http:http下,但是pid文件的模式是root:root爲什麼systemd以root身份創建pid文件:root?有沒有辦法改變它? – Charlie 2013-04-23 14:41:01

+0

可能,父進程以「root」身份運行(除非實際以HTTP用戶身份啓動Apache而不是以root用戶身份運行,另請參見[有關用戶指令的說明](http://httpd.apache.org/docs/2.2/) mod/mpm_common.html#user))。一個選項使用了一個更理想的umask(使得pid文件可讀,但不能被'http'寫入) – Wrikken 2013-04-23 15:30:27

回答

2

解決的辦法是調整文件/usr/lib/tmpfiles.d/apache.conf。默認值是錯誤的。你必須要改變這種

d /run/httpd 0755 root root - 

d /run/httpd 0755 http http - 

重新啓動Apache後,PID文件將創建爲chown http:http而不是chown root:root

Ressources

+0

爲我工作,使用Arch也 – 2013-10-28 05:23:01

+0

同時,這不再適用於我...不知道發生了什麼問題... – rumpelsepp 2013-10-28 19:20:18

+0

我今天跑了一個更新,它也停止了工作。另一方面,恢復到'root'後,它停止了永遠的開始。去搞清楚。 – 2013-10-28 22:43:16

1

我的看法是,這個錯誤是一個特點:沒有什麼我做已經能夠擺脫它(試一切建議在這裏,然後一些),但軟件運行得很好。所以,我認爲這是一個稍微錯誤的成功信息 - 我已經開始了!

0

我遇到過這個問題:

PID file *.pid not readable (yet?) after start.

最近幾天,我的Apache服務器從包發行版本編譯爲httpd-2.4.12.tar.gz。這是我的httpd.service內容,在這之後我的問題得到解決。希望這可以幫助任何遇到此問題的人。

[Unit] 
Description=The Apache HTTP Server 
After=network.target remote-fs.target nss-lookup.target 

[Service] 
Type=forking 
ExecStart=/usr/local/apache/bin/apachectl start -DFOREGROUND 
PIDFile=/run/apache/apache.pid 
ExecReload=/usr/local/apache/bin/apachectl restart 
ExecStop=/user/local/apache/bin/apachectl stop 
PrivateTmp=True 

[Install] 
WantedBy=multi-user.target 
+0

當你在前臺開始一個進程時,你應該使用'Type = simple'。此外,'PIDFile'不是必需的。 – rumpelsepp 2016-03-29 08:19:42