PHP 錯誤:Unable to load dynamic library
Unable to load dynamic library 錯誤訊息 Failed loading /usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/opcache.so: dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/opcache.so, 9): Symbol not found: _pcre_globals Referenced from: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/opcache.so Expected in: flat namespace in /usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/opcache.so ... 省略 遭遇過程: 最近將 PHP 從 PHP5.6 更新至 PHP7.1。使用 PHPStorm 要進行單元測試時,報錯了: 從錯誤訊息可看見有幾個 PHP 插件沒辦法被載入,導致我的 PHPUnit 沒辦法順利執行,並且得到一個提示訊息為: Expected in: flat namespace 發生原因: 一番查證後,原來 Expected in: flat namespace 是 C++ 層級的錯誤例外訊息。 這段訊息會在「程式環境沒有辦法編譯插件」的時候跳出!(程式環境指的是 PHP5、PHP7、Python 等正在運行的程式。) PHP 沒辦法順利編譯插件?但這些插件明明在啟動 Apache 時都被順利載入了,到底發生什麼事呢? 在一般情況下 PHP7.1 確實可以正常編譯這些套件,但在 PHP-CLI 模式下進行 PHPUnit 時卻又編譯失敗?這些跡象已經指出, 一定是 PHP-CLI 的編譯器指錯版本了 ! 打開 PHPStorm > Preferences > Language & Framework > PHP,檢查 PHP-CLI 版本是否有問題: PHP7.1 與 PHP