2017-09-11 37 views
0

關於display_startup_errors PHP手冊說,即使display_errors打開時,也不顯示PHP啓動序列期間發生的錯誤。那麼PHP的啓動順序是什麼意思?它涉及什麼,以及可能發生哪種錯誤?一些常見的例子可以幫助。PHP的啓動順序涉及什麼?

+0

好,php.ini的錯誤配置,例如。應該執行的文件不可讀。在任何php文件被實際解析之前發生的那種事情。 – Jakumi

+0

謝謝Jakumi,這是一個很好的例子。我也讀過http://php.net/manual/en/configuration.file.php。但是,例如,PHP的「啓動順序」從哪裏開始。我們如何判斷它已經結束並且php文件的解析已經開始?啓動與諸如幾個文件夾,模塊和擴展等中的.htaccess之類的東西有什麼關係? –

回答

1

您將看到的將被display_startup_errors抑制的最常見類型的錯誤將與PHP因各種原因未能加載發佈錯誤消息的模塊或模塊有關。

例如:

PHP的警告:PHP啓動:無法加載動態庫 '/path/to/module.so' - /path/to/module.so:無法打開共享對象文件:沒有這樣的文件或目錄在未知的行0

這意味着PHP被配置爲加載module.so,但它沒有被發現,因此它不能被加載。

模塊還可能會發出警告,由於惡劣的ini配置值:

PHP的警告:PHP啓動:session.name不能是數字或未知空「」在線0

這是會話擴展發出的幾個警告之一,在這種情況下,因爲session.name的配置值是數字或空的。

大部分PHP的啓動順序都是圍繞自己配置,在動態模塊中加載,調用每個模塊的GINIT和PHP_MINIT_FUNCTION,以便它們可以初始化,然後運行PHP的啓動順序。

如何以及何時發生這些事情取決於PHP運行在哪個服務器API下。對於Apache,這可能是Apache模塊,FPM,CGI/FastCGI。

是談論這方面的一些有益的參考是: