2010-08-11 151 views
2

我在PHP中編寫自定義擴展,並將擴展加載到php.ini文件中。使用命令行界面時,擴展加載並運行良好,但不會加載到Web服務器(使用FastCGI的切諾基)。在提出問題之前,首先要解決一些問題,我肯定使用了正確的php.ini文件,並且已經正確設置了extension_dir的值。即使當我指定加載擴展的完整路徑時,它也不起作用。PHP不加載自定義擴展

所以我想知道我能做些什麼來解決這個問題。我懷疑這可能是由於外部依賴,因爲擴展加載正常之前,我將它鏈接到一對夫婦共享庫。但是,我在/var/log/cherokee/cherokee.error中看不到任何問題。有關我如何確定問題的任何其他想法?

+0

嘗試移動或重命名其中一個其他擴展名的.so文件之一。那麼你看到一個錯誤?如果沒有,錯誤日誌記錄會出錯。此外,您正在使用哪個版本的PHP?您不妨考慮升級到5.3.3,其中包含漂亮的「FPM」FastCGI實現。關於共享庫,你是否確信它們位於可找到的位置?我認爲有問題的環境變量是'LD_LIBRARY_PATH'或者其他什麼... – Charles 2010-08-11 16:59:49

+0

你的意思是在日誌中沒有錯誤說明擴展名不能被加載? – Artefacto 2010-08-11 17:11:40

+1

沒有錯誤,但我意識到這是因爲error_log沒有在php.ini中設置。將它設置爲syslog後,我現在可以看到該擴展未加載,因爲它是32位,而PHP和切諾基是64位。我正在將這些重建爲32位。謝謝您的幫助。 – okalex 2010-08-11 17:29:51

回答

0

好的,重建PHP和Cherokee之後,我已經將它工作到32位(並修復了切換到32位後出現的錯誤)。再次感謝。