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加载了两个具有相同名称的扩展。