PHP无法加载共享库

时间:2014-09-12 03:19:16

标签: php shared-libraries

我是在这个论坛上发帖的新手。希望我不会在这里犯任何社会错误。

我有:

  1. Linux系统(64位)
  2. 使用以下选项编译和安装php:
  3.   

    ./配置   --enable-维护者,ZTS   --with-PDO MySQL的   --with-的mysqli = mysqlnd   前缀=的/ etc / httpd的/ PHP的   --with-GD   --with-配置文件中路径= /等/ httpd的/ PHP的   --disable-CGI   --with-zlib的   --with-gettext的   --with-GDBM   --enable-ZIP   --enable-mbstring的   --with-ZLIB-DIR =的/ usr /包括   --with-的libxml-DIR =的/ usr / lib64下   --with-mcrypt的=在/ usr / lib64下   --with-JPEG-DIR = / USR   --with-PNG-DIR = / USR   --with-apxs2 =的/ etc / httpd的/ bin中/ apxs的   --enable共享


    1. php.ini,具有以下设置:
    2. extension_dir = "/usr/lib64/php/modules/"
      
      extension=mongo.so
      extension=curl.so
      extension=json.so
      extension=fileinfo.so
      extension=gd.so
      extension=mbstring.so
      extension=mcrypt.so
      extension=phar.so
      extension=zip.so
      

      1. ls -l / usr / lib64 / php / modules =
      2.   

        curl.so fileinfo.so gd.so json.so mbstring.so mcrypt.so mongo.so   phar.so zip.so


        1. 一个hello world PHP App print_something.php,其中包含以下行:
        2. <?php
          echo "Hello world\n";
          ?>
          
          1. php版本为5.6.0

          2. 在命令行运行时使用:

            php print_something.php

          3. 我得到以下输出:

            php print_something.php

              

            PHP警告:PHP启动:无法加载动态库   &#39; /usr/lib64/php/modules/mongo.so' - /usr/lib64/php/modules/mongo.so:   未定义的符号:第0行的未知文件_globals

                 

            PHP警告:PHP启动:无法加载动态库   &#39; /usr/lib64/php/modules/curl.so' - /usr/lib64/php/modules/curl.so:   未定义的符号:第0行的未知文件_globals PHP警告:

                 

            PHP启动:无法加载动态库&#39; /usr/lib64/php/modules/json.so' - &gt; /usr/lib64/php/modules/json.so:未定义的符号:执行者_globals在第0行的未知中

                 

            PHP警告:PHP启动:无法加载动态库&#39; /usr/lib64/php/modules/fileinfo.so' -   /usr/lib64/php/modules/fileinfo.so:undefined symbol:file_globals in   第1行未知

                 

            PHP警告:PHP启动:无法加载动态库&#39; /usr/lib64/php/modules/gd.so' -   /usr/lib64/php/modules/gd.so:未定义的符号:第0行的未知中的core_globals

                 

            PHP警告:PHP&gt;启动:无法加载动态库&#39; /usr/lib64/php/modules/mbstring.so' -   /usr/lib64/php/modules/mbstring.so:undefined symbol:sapi_globals in   第1行未知

                 

            PHP警告:PHP启动:mcrypt:无法初始化使用模块API编译的模块模块= 20090626使用模块API编译的PHP = 20131226这些选项需要匹配   第0行未知

                 

            PHP警告:PHP启动:无法加载动态库&#39; /usr/lib64/php/modules/phar.so' -   /usr/lib64/php/modules/phar.so:undefined symbol:sapi_globals in   第0行未知

                 

            PHP警告:PHP启动:无法加载动态库&#39; /usr/lib64/php/modules/zip.so' -   /usr/lib64/php/modules/zip.so:undefined symbol:executor_globals in   第0行未知

                 

            Hello world


            我真正需要的是mongo.so(我添加其他内容只是为了确保它不仅仅是一个mongo问题)。我已经查看了没有加载的php共享模块的一般搜索和特定搜索,并且无法找到有关如何解决此问题的任何答案。如果有人能够阐明为什么这些模块不会加载,那将非常感激。

1 个答案:

答案 0 :(得分:3)

不会为此版本的PHP编译PHP扩展。

缺少符号也是如此,因为没有链接到正确的PHP版本。

错误示例: mcrypt

  • 使用模块API = 20090626
  • 编译的模块
  • 使用模块API = 20131226
  • 编译的PHP
  • 这些选项需要匹配

解决方案:使用包管理系统更新PHP扩展以与PHP同步,或者使用PHP,SDK和所需的扩展手动编译它们。

您可以在此处找到Mongo扩展程序:http://pecl.php.net/package/mongo