PHP的扩展库中调用了C的一个动态库 
vim test.php
<?php
echo confirm_mymodule_complied("qwer1234");
?>
php-5.3.3中把dl去了 在php.ini中加入了
extension = mymodule.so
extension_dir = /usr/lib64/php/modules/重启apachectl restart在linux终端运行php test.php 成功
在浏览器中就显示 Tatal error:Call to undefined function confirm_mymodule_compiled()on line 4 confirm_mymodule_complied中调用了一个C的.so 库中的函数
如果不加该函数 浏览器显示成功 加入就显示上述错误 但是在终端用命令行运行是成功的哪位路过能说说是怎么回事????
终端命令和用浏览器显示有什么区别???
 php扩展phpc终端浏览器

解决方案 »

  1.   

    php.ini 命令行和web服务器是在不同的目录下,看下是不是这个原因
      

  2.   

    顶楼上, phpinfo就能看出来
      

  3.   

    是权限问题吧……,是apache还是nginx,用户用户组没权限
      

  4.   


    服务器不是根据php.ini这个文件去找扩展库的么 现在这个扩展库找得到 但是扩展库中的调用的函数(在/usr/lib64/file.so)找不到  但是用终端敲命令php 123.php却没有任何问题
      

  5.   

    打印phpinfo().
    查看两个重要信息: 
    1. web侧使用的php.ini文件路径
    2. 是否成功加载了你的扩展(给你的扩展加个MINFO函数暴露信息出来).
      

  6.   


    这个问题解决了:
    是路径问题,我把C动态库放到ld.so.conf.d制定路径下就好了......