Apache-2.4

Apache 不會從 systemd 開始

  • July 5, 2018

我遇到了為 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 秒 ( DefaultTimeoutStartSecin system.conf) 的啟動時間——如果時間超過此時間,則服務被終止(首先使用 SIGTERM,然後再使用 SIGKILL 90 秒,看systemd.kill(5)——這就是你的三分鐘的來源)。據推測,啟用 PHP/MSSQL 驅動程序會使 Apache 啟動速度慢到需要超過 90 秒的時間。

嘗試增加TimeoutStartSec, apache.servicee。G。TimeoutStartSec=5min甚至TimeoutStartSec=infinity。您可以使用以下命令執行此操作:

systemctl set-property apache.service TimeoutStartSec=5min

(順便說一句,straceingsystemctl不是很有用,因為systemctl它本身不會啟動服務 - 它只是與 PID1 對話並告訴它做一些事情。要找出是什麼讓 Apache 如此緩慢,您可以strace添加ExecStart=指令apache.service.)

引用自:https://serverfault.com/questions/919326