2010-07-17 85 views
3

這是不可能的錯誤日誌:如何修復PHP模塊線程安全/非線程安全的不匹配?

PHP Warning: PHP Startup: BOPEE Extension: Unable to initialize module 
Module compiled with build ID=API20090626,TS,VC9 
PHP compiled with build ID=API20090626,NTS,VC9 
These options need to match 
in Unknown on line 0 

PHP Warning: PHP Startup: CustomExt Module: Unable to initialize module 
Module compiled with build ID=API20090626,TS,VC9 
PHP compiled with build ID=API20090626,NTS,VC9 
These options need to match 
in Unknown on line 0 

我如何獲得PHP的非線程源?我在windows.php.net/download上找到的唯一下載鏈接是http://windows.php.net/downloads/releases/php-5.3.2-src.zip,這似乎是線程安全的代碼---或者有什麼方法告訴源代碼實際上是非線程安全的?

我試圖把--disable-zts在命令行的configure.bat但同時有來自configure.bat的輸出效果很好,它似乎並沒有做出任何源較少線程。

回答

6

在上面的例子中,PHP本身是非線程安全的(NTS),但模塊是線程安全的(TS)。該模塊是線程安全的,因爲定義了Zend線程安全ZTS常量(在模塊的源代碼或VS 2008的預處理器定義中)。

只需更改ZTS=1ZTS=0確實不是工作。
您必須徹底刪除ZTS的定義。