PHP版本检测未通过(已解决,原因:系统不纯净)

jxgame 2020-7-11 1270

如附件1.png图所示
任何版本都显示版本检测不通过

尝试处理:
rpm -q sqlite
sqlite-3.7.17-8.el6.x86_64

yum update -y sqlite
No Packages marked for Update

其它补充,组件管理中,重载PHP,执行结果是:
Reloading php-fpm: [11-Jul-2020 18:17:44] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sqlite (/opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sqlite: cannot open shared object file: No such file or directory), /opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sqlite.so (/opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: sqlite3_column_table_name)) in Unknown on line 0
[11-Jul-2020 18:17:44] NOTICE: configuration file /etc/opt/appnode/scls/appnode-php73/php-fpm.conf test is successful

[ OK ]

请大佬帮助看一下如何解决。

上传的附件:
  • 1.png (大小:51.83K,下载次数:96)
最新回复 (12)
  • 虚竹 2020-7-11
    引用 2
    查看下目录 /opt/appnode/appnode-php73/root/usr/lib64/php/modules/ 下是否存在文件:pdo_sqlite.so(正常应该存在)。
  • jxgame 2020-7-11
    引用 3
    虚竹 查看下目录 /opt/appnode/appnode-php73/root/usr/lib64/php/modules/ 下是否存在文件:pdo_sqlite.so(正常应该存在)。
    该目录下的文件 
    bcmath.so    enchant.so   intl.so      pdo_mysql.so   soap.so       wddx.so
    bz2.so       exif.so      json.so      pdo.so         sockets.so    xmlreader.so
    calendar.so  fileinfo.so  mbstring.so  pdo_sqlite.so  sqlite3.so    xml.so
    ctype.so     ftp.so       mcrypt.so    phar.so        sysvmsg.so    xmlwriter.so
    curl.so      gd.so        mysqli.so    posix.so       sysvsem.so    xsl.so
    dba.so       gettext.so   mysqlnd.so   shmop.so       sysvshm.so
    dom.so       iconv.so     opcache.so   simplexml.so   tokenizer.so

    pdo_sqlite.so 是存在的
  • jxgame 2020-7-11
    引用 4
    虚竹 查看下目录 /opt/appnode/appnode-php73/root/usr/lib64/php/modules/ 下是否存在文件:pdo_sqlite.so(正常应该存在)。
    同样存在问题的 php56 相应的目录  /opt/appnode/appnode-php56/root/usr/lib64/php/modules/
    也存在 pdo_sqlite.so 但报的错误是一样的
    --------------
    Reloading php-fpm: [11-Jul-2020 21:31:00] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/opt/appnode/appnode-php56/root/usr/lib64/php/modules/pdo_sqlite.so' - /opt/appnode/appnode-php56/root/usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: sqlite3_column_table_name in Unknown on line 0
    [11-Jul-2020 21:31:00] NOTICE: configuration file /opt/appnode/appnode-php56/root/etc/php-fpm.conf test is successful

    [ OK ]
  • jxgame 2020-7-11
    引用 5
    期盼解决。
  • 虚竹 2020-7-12
    引用 6

    你系统中的sqlite似乎安装得有问题,参考下下面两个命令输出:
    rpm -q sqlite --list
    nm -gD /usr/lib64/libsqlite3.so.0 | grep sqlite3_column_table_name

    # rpm -q sqlite --list
    /usr/bin/sqlite3
    /usr/lib64/libsqlite3.so.0
    /usr/lib64/libsqlite3.so.0.8.6
    /usr/share/doc/sqlite-3.7.17
    /usr/share/doc/sqlite-3.7.17/README
    /usr/share/man/man1/sqlite3.1.gz
    # nm -gD /usr/lib64/libsqlite3.so.0 | grep sqlite3_column_table_name
    0000000000011a30 T sqlite3_column_table_name
    0000000000011a50 T sqlite3_column_table_name16
  • jxgame 2020-7-12
    引用 7
    [root@~]# rpm -q sqlite --list
    /usr/bin/sqlite3
    /usr/lib64/libsqlite3.so.0
    /usr/lib64/libsqlite3.so.0.8.6
    /usr/share/doc/sqlite-3.7.17
    /usr/share/doc/sqlite-3.7.17/README
    /usr/share/man/man1/sqlite3.1.gz
    [root@~]# nm -gD /usr/lib64/libsqlite3.so.0 | grep sqlite3_column_table_name
    0000000000011790 T sqlite3_column_table_name
    00000000000117b0 T sqlite3_column_table_name16
  • jxgame 2020-7-12
    引用 8
    虚竹 你系统中的sqlite似乎安装得有问题,参考下下面两个命令输出: `rpm -q sqlite --list` `nm -gD /usr/lib64/libsqlite3.so.0 | grep ...
    事实上没有发现什么区别。如何尝试解决办法呢?
  • 虚竹 2020-7-12
    引用 9

    确实没看出来哪里不一样。

    这个命令你也试下:

    # ldd /opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sqlite.so  
            linux-vdso.so.1 =>  (0x00007fffcf9fd000)
            librt.so.1 => /lib64/librt.so.1 (0x00007ff4bf0f5000)
            libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007ff4bee40000)
            libc.so.6 => /lib64/libc.so.6 (0x00007ff4bea71000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff4be855000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007ff4be651000)
            /lib64/ld-linux-x86-64.so.2 (0x00007ff4bf512000)


    你到官网后台提交一个工单,带上面板临时权限,我登录上去看下你的服务器具体情况。正常是不会出现你的问题的。

  • jxgame 2020-7-12
    引用 10
    虚竹 确实没看出来哪里不一样。 这个命令你也试下: ``` # ldd /opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sq ...
            linux-vdso.so.1 =>  (0x00007fff5c3ff000)
            librt.so.1 => /lib64/librt.so.1 (0x00007ff97d75e000)
            libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x00007ff97d457000)
            libc.so.6 => /lib64/libc.so.6 (0x00007ff97d0c2000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff97cea5000)
            /lib64/ld-linux-x86-64.so.2 (0x00007ff97db79000)
            libz.so.1 => /lib64/libz.so.1 (0x00007ff97cc8f000)
            libm.so.6 => /lib64/libm.so.6 (0x00007ff97ca0a000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007ff97c806000)
  • jxgame 2020-7-12
    引用 11
    虚竹 确实没看出来哪里不一样。 这个命令你也试下: ``` # ldd /opt/appnode/appnode-php73/root/usr/lib64/php/modules/pdo_sq ...
    这个有区别了,如何处理呀
  • 虚竹 2020-7-12
    引用 12

    /usr/local/lib/libsqlite3.so.0 这个是你自己编译安装的,由于你在/etc/ld.so.conf中指定了最先查找/usr/local/lib目录下的库文件,导致系统优先识别了你自己编译安装的sqlite库,而正常的sqlite库却没有被匹配。

    解决办法有两种:

    1. 删除自己编译的sqlite库;
    2. 调整/etc/ld.so.conf/usr/local/lib的优先级,建议放在最后,修改完后要执行ldconfig命令使配置生效。
  • jxgame 2020-7-12
    引用 13
    修改完后要执行ldconfig命令使配置生效

    问题均解决。
    留给其它需要的朋友!
返回
发新帖