我在Pthreads PHP extension有問題。我已經編譯了支持ZTS的PHP(--enable-maintainer-zts
),並通過pecl安裝了pthread,並試圖手動編譯擴展。如何在Ubuntu中使用Pthreads PHP擴展
看來我實際上並不知道如何使用它。我認爲我可以像使用其他任何內置類一樣使用PHP中的Thread類,但沒有運氣,因爲PHP無法識別它。 POSIX函數似乎工作。
我使用的是Ubuntu 12.10 Server 64位mod_php 5.4.6。
我在Pthreads PHP extension有問題。我已經編譯了支持ZTS的PHP(--enable-maintainer-zts
),並通過pecl安裝了pthread,並試圖手動編譯擴展。如何在Ubuntu中使用Pthreads PHP擴展
看來我實際上並不知道如何使用它。我認爲我可以像使用其他任何內置類一樣使用PHP中的Thread類,但沒有運氣,因爲PHP無法識別它。 POSIX函數似乎工作。
我使用的是Ubuntu 12.10 Server 64位mod_php 5.4.6。
如果您不能訪問擴展類,那麼它不會被加載。
我想你打開了一個錯誤報告,我回應說你的配置行格式不正確。
要使用配置行是:
./configure --enable-pthreads --enable-maintainer-zts
上面的命令將建立並行線程作爲一個DSO。
./configure --enable-pthreads=static --enable-maintainer-zts
上述命令將靜態生成pthread到PHP中。
兩者同樣受5.3,5.4甚至5.5的支持。
此外,如果要覆蓋系統安裝,那麼你應該使用一個特定的--prefix
,例如,如果你的PHP可執行程序位於/usr/bin
(你可以用確定「的PHP」),然後--prefix=/usr
將覆蓋系統安裝。
清理舊的安裝(如果源仍然可用,請進行卸載)。重新開始,確保你要麼覆蓋系統安裝,要麼完全隔離這個系統。
請在完成後更新錯誤報告。
好吧,我重新安裝了整個Ubuntu,並且使用您建議的命令(--enable-pthreads = static)靜態構建PHP。目前沒有任何問題,所以似乎在PHP配置中出現了問題。謝謝你幫助我。 –
是否需要爲所有安裝的PHP版本(即CGI,CLI和SAPI/Apache)啓用ZTS?或者,如果我打算只爲CLI使用pthread,我可以讓ZTS禁用其他的嗎? – robguinness
Anywhere pthreads加載需要ZTS,如果您願意,您可以構建一個支持pthread的PHP獨立實例... –
我研究了apache錯誤日誌,看來pthreads.so不能被加載,因爲有一個未知的符號:sapi_globals_id ...我也嘗試使用pthreads編譯php作爲靜態擴展,它沒有區別。 –
該文件明確指出它是5.3。我們可以假設「5.6.4」的意思是「5.4.6」嗎?如果是的話,嘗試從5.4開始下降到5.3,然後看看它是否有效。如果確實如此,那麼您需要向維護人員提出有關5.4支持的問題。 – Charles
是的,那是一個錯字,我正在運行PHP 5.4.6。目前pthreads已經啓動並正在運行。 –