我在Linux系统下用C写了一个php扩展的例子,在编译的本机上是已经可以运行的,
但是把.so文件传到另一台同样Linux版本,相同版本的apache与php下面,发现.so没有加载进去,
我在phpbin下用一个测试程序直接测试,如 ./php -q test.php 发现当前php导入.so有warning
Unable to initialize module。
但是如果我得重新在新的机器上编译.so 是可以用的,但是如果这样我的php扩展程序每次都要到
生产机器上去编译嘛,我是想在自己的测试程序上编译好了之后,传到生产机器上就可以了。
请问有没有人碰到过这种情况,有的话请指点一下。。谢谢....

解决方案 »

  1.   

    编程方面不怎么会 但是你既然在linux上使用  你就应该在linux里编译 应该在相同架构的linux上就通用了
      

  2.   

    完全相同的Linux版本,都是Suse11.连apache,php编译安装的版本跟路径也是一样的。。
      

  3.   

    不会考了个符号链接过去吧
    用cp -L 复制可以避免这样的问题另外权限问题也要注意,看看你拷过去的so文件是不是跟你php同组同用户。执行权限又怎么样,都设成一样的应该没问题的
      

  4.   

    解决了,原来是有一台apache的编译参数 增加了--with-mpm=worker的缘故,不使用这个参数编译就可以了。
      

  5.   

    我也是搞php的啊 加我的qq 244705779