Расширение PHP: модуль «привет» уже загружен в «Неизвестно» в строке 0

Моя среда разработки:

Linux — Linux localhost.localdomain 2.6.9-42.

апач: 2.2.4

php:5.2.3

Я написал расширение php привет.

когда я делаю тест, он показывает мне:

Предупреждение PHP: модуль «привет» уже загружен в «Неизвестно» в строке 0

Предупреждение PHP: модуль «привет» уже загружен в «Неизвестно» в строке 0

Я проверяю php.ini, там только одна строка extension=hello.so.

Я удаляю extension=hello.so в php.ini, затем делаю тест успешно, но модуль hello не загружается процессом веб-сервера.

Что я должен делать?


person Vector.Lee    schedule 19.08.2010    source источник
comment
Загрузите его вручную с помощью dl(). Если сообщение об ошибке сохраняется, скорее всего, это ошибка кода/сборки, а не сбой конфигурации.   -  person mario    schedule 19.08.2010
comment
благодаря. Я попытался, и веб-браузер показал мне: Предупреждение: dl() [function.dl]: не поддерживается на многопоточных веб-серверах - используйте extension=/usr/local/php/ext/hello.so в вашем php.ini   -  person Vector.Lee    schedule 20.08.2010
comment
/usr/local/php/bin/php -c /usr/local/php/lib/php.ini -f /home/html/ext/hello_test.php Эта команда выполнена успешно.   -  person Vector.Lee    schedule 20.08.2010
comment
Это дубликат этого вопроса, на который был дан правильный ответ, в отличие от этого ---> stackoverflow.com/questions/19653926/   -  person NickNo    schedule 11.06.2014


Ответы (3)


Я думаю, что сообщение об ошибке на самом деле вводит в заблуждение, в моем случае (некоторое время назад) у меня было похожее сообщение из-за проблемы со ссылкой внутри модуля.

person greg    schedule 19.08.2010
comment
Спасибо, да, я написал разделяемую библиотеку php_help, которая связана со статическими библиотеками boost_date_time.a и boost_thread.a, а hello.so связана с libphp_help.so. когда я выполняю команду make для php_help, gcc показывает мне предупреждающее сообщение *** Предупреждение: Связывание разделяемой библиотеки libphp_help.la со статической *** библиотекой /usr/local/lib/libboost_date_time.a не переносимо! *** Предупреждение: Связывание разделяемой библиотеки libphp_help.la с *** статической библиотекой /usr/local/lib/libboost_thread.a не переносимо! Что это означает? - person Vector.Lee; 20.08.2010
comment
Я могуt find the file libphp_help.a after command make finished. But libphp_help.a will be created in folder /usr/local/lib when i execute command make install. I think something is wrong. php_helps makefile.am: AUTOMAKE_OPTIONS=foreign lib_LTLIBRARIES=libphp_help.la INCLUDES=-I/usr/local/include/boost-1_43 -I./include libphp_help_la_SOURCES=./src/php_help.cpp\ ./src/log.cpp libphp_help_la_LIBADD=/usr/local/lib/libboost_date_time.a /usr/local/lib/libboost_thread.a -lpthread - person Vector.Lee; 20.08.2010

Это безобидное предупреждение, но я обычно вижу это, когда люди обрабатывают один и тот же файл INI несколько раз (например, если они имеют символическую ссылку где-то в разделе «Сканировать этот каталог на наличие дополнительных файлов .ini»)

person TML    schedule 19.08.2010
comment
Спасибо. Какие файлы будут включать php.ini? Я нашел только один файл php.ini на своем диске. - person Vector.Lee; 20.08.2010

Похоже, что никто больше не будет просматривать этот вопрос, поэтому я скажу то, что думаю. Make test запустит php и загрузит файл расширения make, которого нет в каталоге, объявленном в php.ini. Должен быть другой файл расширения, который в каталоге, объявленном в php.ini, уже загружен php. поэтому php загрузил два расширения с одинаковым именем.

person Vector.Lee    schedule 31.08.2010