2010-08-19 70 views
2

我的開發環境:PHP擴展:模塊'hello'已經加載到未知的行0

Linux - Linux localhost.localdomain 2.6.9-42。

阿帕奇:2.2.4

PHP:5.2.3

我寫了一個PHP擴展打招呼。

當我做測試告訴我:

PHP警告:模塊「你好」已裝入未知在線0

PHP警告:模塊「你好」已裝入未知在線0

我檢查php.ini,只有一行擴展= hello.so。

我在php.ini中刪除extension = hello.so,然後使測試成功,但hello模塊沒有被webserver進程加載。

我該怎麼辦?

+0

用dl()手動加載它。如果錯誤信息持續存在,則更可能出現代碼/構建錯誤,而不是配置故障。 – mario 2010-08-19 05:21:33

+0

謝謝。 我試過了,網頁瀏覽器給我看: 警告:dl()[function.dl]:多線程Web服務器不支持 - 在你的php.ini中使用extension =/usr/local/php/ext/hello.so – 2010-08-20 02:48:25

+0

/usr/local/php/bin/php -c /usr/local/php/lib/php.ini -f /home/html/ext/hello_test.php 該命令執行成功。 – 2010-08-20 02:58:42

回答

0

我想記住這個錯誤信息實際上是誤導性的,就我而言(前一段時間),我有類似的消息,因爲模塊內部存在鏈接問題。

+0

Thanks.yea,我寫了一個共享庫php_help,它與 靜態庫boost_date_time.a和boost_thread.a鏈接,並將hello.so鏈接到libphp_help.so。 當我執行命令做出php_help,GCC告訴我警告消息 ***警告:連接共享庫libphp_help.la對 ***靜態庫/usr/local/lib/libboost_date_time.a是不可移植! ***警告:將共享庫libphp_help.la與 ***靜態庫/usr/local/lib/libboost_thread.a鏈接是不可移植的! 這是什麼意思? – 2010-08-20 02:25:52

+0

命令完成後,我無法找到文件libphp_help.a。 但是libphp_help。當我執行命令make install時,將在文件夾/ usr/local/lib中創建一個。 我覺得有什麼不對。 php_help's的Makefile.am: AUTOMAKE_OPTIONS =外國 lib_LTLIBRARIES = libphp_help.la INCLUDES = -I在/ usr /本地/包括/升壓1_43 -I./include libphp_help_la_SOURCES =/src目錄/ php_help.cpp \ 。 \t \t \t \t \t \t \t \t \t \t \t ./src/log.cpp libphp_help_la_LIBADD =的/ usr /本地/ LIB/libboost_date_time.a /usr/local/lib/libboost_thread.a -lpthread – 2010-08-20 02:26:29

0

這是一個無害的警告,但我通常看到這個當人們被多次處理同一個INI文件(例如,如果他們有它的地方符號鏈接「掃描這個目錄額外的.ini文件」下)

+0

感謝。什麼文件將包括php.ini?我在我的磁盤中找到了一個php.ini文件。 – 2010-08-20 02:30:36

0

看起來沒有人會再看這個問題,所以我會說我的想法。 進行測試會啓動php並加載不在php.ini中聲明的目錄中的make擴展文件。 在php.ini中聲明的目錄中必須有另一個擴展文件已被php加載。 所以PHP加載了兩個具有相同名稱的擴展。