我有一個由Apache2服務器提供服務的PHP5應用程序。我想使用mpm_worker模塊,如果PHP不是線程安全的,則該模塊不可用。所以,我用合適的標誌編譯了PHP。此輸出確認我的PHP安裝是線程安全的:線程安全的libapache2-mod-php5
$ php -i | grep Thread
Thread Safety => enabled
太棒了!要創建Apache和PHP之間的鏈接,請激活php5模塊(a2enmod php5
)。使用的文件(libphp5.so)由包libapache2-mod-php5安裝。然而,在他們的頁面上,他們說:
請注意,此包僅適用於Apache的prefork MPM,因爲它不是線程安全編譯的。
這是否意味着我的螺紋Apache和線程安全的PHP之間矗立libphp5.so這是不是線程安全的?因此使得mpm_worker不可用。
我想編譯這個文件,就像我用PHP做的那樣,使它成爲線程安全的。我沒有找到任何關於它的話題。我很樂意提供任何有助於我的案例的建議。
當我看着phpinfo()函數,我可以看到版本(PHP版本5.6.30-0 + deb8u1)不與一個我整理匹配(PHP 31年6月5日)。並且線程安全性顯示爲禁用。這就像它使用另一個PHP安裝。這裏是當前安裝的PHP包:
$ apt list --installed | grep php
libapache2-mod-php5/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed]
libphp5-embed/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed]
php5-cli/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed,automatic]
php5-common/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed,automatic]
php5-fpm/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed]
php5-json/oldstable,now 1.3.6-1 amd64 [installed,automatic]
php5-mysql/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed]
php5-readline/oldstable,oldstable,now 5.6.30+dfsg-0+deb8u1 amd64 [installed,automatic]