最后更新.
问题解决了.
我解决问题的方法是按照以下链接的说明从源代码完全重新安装Apache和PHP.
http://dan.drydog.com/apache2php.html
然后按照下面链接的指令直接在PHP中构建扩展来进行扩展.
唯一的事情是二进制文件都只在特定的路径中,我认为这是一个容易解决的问题.
谢谢大家,这是我在Stackoverflow中的第一篇文章,我花了一整天的时间来制作我的第一个php扩展.虽然有点难,但我喜欢它!:d
原始问题
我正在尝试按照以下链接的指令构建一个php扩展:
http://docstore.mik.ua/orelly/webprog/php/ch14_03.htm
我使用以下步骤将'rot13'的扩展构建到php中
./buildconf
./configure --enable-rot13
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
然后我通过命令行php测试了扩展.输出与上面的文章完全相同.
我想在我将扩展构建到php本身之后,我不需要关心php.ini文件.然后我尝试在浏览器中测试扩展,我发现phpinfo()页面没有显示有关新扩展的任何内容,而php -m命令显示我的扩展已加载.我检查了apache2日志,没有错误.
我用谷歌搜索了将近一天,并没有得到任何线索.有些线程在stackoverflow中类似,但没有真正有效的解决方案.
我的系统是Ubuntu 11.10和php 5.3.10以及apache2.2.20.
如果你们有线索,请帮忙.谢谢!
更新:
我确实将扩展名= rot13.so放在php.ini文件的/etc/php5/apache2/php.ini路径中,但现在每当我重新启动apache2服务器时,都会出现以下错误.
PHP Warning: PHP Startup: rot13: Unable to initialize module
Module compiled with build ID=API20090626,TS,debug
PHP compiled with build ID=API20090626,NTS
Run Code Online (Sandbox Code Playgroud)
这些选项需要在第0行的Unknown中匹配
任何人都有任何关于导致这个错误的线索?
顺便说一句,当我编译扩展时,我确实使用./configure --enable-rot13 --with-php-config =/usr/local/bin/php-config来确保它使用php的配置文件.
再次更新:
我发现网页上的phpinfo()有不同版本的php -i我从命令行获得...这有多奇怪?我会试着谷歌如何弄清楚这个冲突.