[英]PHP 7.2 - Missing extensions returns no errors - Stops execution
自從星期三以來,我就一直在與這個問題作斗爭,經過我在PHP 5.6
和PHP 7.2
(也是7.1)之間的研究和測試之后得出的結果是:我的PHP 7不會抱怨或注意到環境中缺少擴展。
取而代之的是,它只是在沒有錯誤消息的情況下停止執行。
為什么PHP 7.x在腳本中間*停止執行,並且不再為缺少PHP擴展名而發出錯誤通知或提示?
*通常位於函數需要使用特定PHP擴展的位置。
Operating System : Debian GNU/Linux 9.6 (stretch)
Web Server : nginx/1.10.3
PHP : PHP 7.2.12
的/etc/apt/sources.list
# deb cdrom:[Debian GNU/Linux 9.2.1 _Stretch_ - Official amd64 NETINST 20171013-13:07]/ stretch main
#deb cdrom:[Debian GNU/Linux 9.2.1 _Stretch_ - Official amd64 NETINST 20171013-13:07]/ stretch main
deb http://ftp.de.debian.org/debian/ stretch main
deb-src http://ftp.de.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main
deb-src http://security.debian.org/debian-security stretch/updates main
# stretch-updates, previously known as 'volatile'
deb http://ftp.de.debian.org/debian/ stretch-updates main
deb-src http://ftp.de.debian.org/debian/ stretch-updates main
雖然PHP 5.6抱怨缺少驅動程序或功能無效,但它只是在必要時在我的代碼中間停止執行,而沒有錯誤消息。
示例 :如果未安裝其中一些擴展,則會發生問題:
php7.2-mysql
php7.2-mbstring
php7.2-soap
php7.2-simplexml
這個問題確實令人困惑,因為我在/etc/php/7.2/fpm/php.ini
啟用了錯誤報告和顯示錯誤,啟動錯誤,並且還可以使用...
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting( E_ALL | E_STRICT);
...在我的代碼中。 但是,對於缺少的擴展名,不會顯示任何消息或錯誤。
當函數調用缺少必要的擴展名時,PHP 7.2是否不再會引發錯誤? 還是php.ini
的默認設置中有一些配置錯誤?
我在這里想念什么?
20181210
解
最后,這是我自己的錯,我已經將我的路由器腳本嘗試/捕獲異常和Throwables到一個變量中,但是那時沒有轉儲或調試它們。 對不起,整個麻煩
附加重要說明
為了確保使我在這里理解的問題是 :對於大多數常見錯誤,例如拼寫錯誤的函數,錯誤的語法,聲明,require,缺少文件等,我可以得到錯誤通知和異常。 但是我的問題是
PHP 7.2
無法注意到缺少某些php擴展名,而是在頁面或日志上提供了一些反饋,它只是停留在需要php擴展名的功能上。
您是否正在使用php-fpm執行php 7.2? php.ini對於php-fpm無效。 在這種情況下,您需要更新php-fpm.conf文件。
php-fpm的正確行是:
; enable display of errors
php_flag[display_errors] = on
php_flag[display_startup_errors] = on
您是否嘗試過error_reporting(-1)
?
看來error_reporting( E_ALL | E_STRICT)
不能處理所有解析/語法錯誤。
參見例如:
編輯:捕獲錯誤/異常也很有用(請參閱評論)
try {
// Your code
} catch(Throwable $e) {
echo $e->getMessage();
}
您可以捕獲Error
或Throwable
(捕獲異常和錯誤(> PHP 5))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.