Apache 不會從 systemd 開始
我遇到了為 MS SQL Server 啟用 PHP 驅動程序的問題
$$ 1 $$
systemctl start httpd
使用 systemd ( )啟動時,導致 Apache httpd 在三分鐘後超時。如果直接啟動 Apache 功能正常 (httpd -X
)。systemctl 錯誤是:httpd.service 的作業失敗,因為向控制程序傳遞了一個致命信號。有關詳細資訊,請參閱“systemctl status httpd.service”和“journalctl -xe”。
如果我禁用 PHP/MSSQL 驅動程序,問題就會消失。
這是 RedHat 7.5,SELinux 處於“許可”模式。
下面的連結具有執行中的相關日誌文件
echo $(date) && systemctl restart httpd
。回顯的日期是Mon Jun 25 11:46:25 CDT 2018
,因此日誌從那時開始。估計故障時間為 11:49:25,因為它在執行 3 分鐘後超時restart httpd
。請注意,PHP 錯誤日誌中沒有條目,因此不包括在內。阿帕奇LogLevel
設置為debug
.日誌文件:https ://gist.github.com/jamesmontalvo3/50cfaa2b2cee966917fc96e3c6784887
由於上面的日誌似乎沒有顯示任何有用的資訊,因此我也執行了
strace -ff -o /tmp/st2 -s 5000 systemctl start httpd
. 六個堆棧跟踪程序的輸出可以在這裡找到:https ://gist.github.com/jamesmontalvo3/89f5e3897c1e2b71b68818215f220477 。但是,我在這裡也沒有看到任何錯誤。我如何確定如何在沒有任何有用的錯誤消息的情況下解決此問題?或者有什麼我只是想念的東西?
我已經在 PHP/MSSQL 驅動程序的 GitHub 上發布了這個問題
$$ 2 $$並在 Apache 郵件列表中$$ 3 $$. 參考:
$$ 1 $$ https://github.com/Microsoft/msphpsql $$ 2 $$ https://github.com/Microsoft/msphpsql/issues/805 $$ 3 $$ http://mail-archives.apache.org/mod_mbox/httpd-users/201807.mbox/%3CCANkjp2rF2beFWWaEpLSouCOc+txzdGh0rihLYz4s4-uWQmOoOg@mail.gmail.com%3E
我相信重要的資訊是這個:
6 月 25 日 11:47:56 server-that-fails systemd
$$ 1 $$: httpd.service 啟動操作超時。終止。
預設情況下,systemd 為服務提供 90 秒 (
DefaultTimeoutStartSec
insystem.conf
) 的啟動時間——如果時間超過此時間,則服務被終止(首先使用 SIGTERM,然後再使用 SIGKILL 90 秒,看systemd.kill(5)
——這就是你的三分鐘的來源)。據推測,啟用 PHP/MSSQL 驅動程序會使 Apache 啟動速度慢到需要超過 90 秒的時間。嘗試增加
TimeoutStartSec
,apache.service
e。G。TimeoutStartSec=5min
甚至TimeoutStartSec=infinity
。您可以使用以下命令執行此操作:systemctl set-property apache.service TimeoutStartSec=5min
(順便說一句,
strace
ingsystemctl
不是很有用,因為systemctl
它本身不會啟動服務 - 它只是與 PID1 對話並告訴它做一些事情。要找出是什麼讓 Apache 如此緩慢,您可以strace
添加ExecStart=
指令apache.service
.)