Apache2.4+php5.3無法載入Zend問題

tony0087發表於2021-09-09

php -v 檢視是否載入上zend guard時報錯:

ZendGuardLoader.so: undefined symbol: compiler_globals

究其原因是zend guard不能執行在 執行緒安全模式下,即必須:

Thread Safety => disabled

如果釋出你的 thread safety 是 enabled,那麼恭喜你,zend guard無法載入了。

嘗試查詢php的編譯選項中,並未發現可以關閉ts的地方。

最終發現,預設情況下,單獨編譯的php,ts是關閉的。

結合apache2.4編譯的php,ts預設是開啟的。

由於在apache2.4中mpm預設為event,為多執行緒模型,php自動開啟了執行緒安全。

重新編譯apache,增加配置選項 –with-mpm=prefork,不使用多執行緒模式即可。

重新編譯apache以後,要重新編譯php,php即會關閉ts。

再次載入ZendGuardLoader,恢復正常:

PHP 5.4.14 (cli) (built: Aug 22 2013 16:28:57)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by
Zend Technologies


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2809764/,如需轉載,請註明出處,否則將追究法律責任。

相關文章