【问题标题】:PHP unable to load dynamic libraryPHP无法加载动态库
【发布时间】:2015-06-11 06:04:15
【问题描述】:

我正在尝试从 here 安装 libinjection 我正在尝试安装 PHP 模块,但在 makemake installmake test 之后出现此错误:

2/libinjection.so - /usr/lib/php5/20121212/libinjection.so:不能 打开共享对象文件:在线未知中没有这样的文件或目录 0 PHP 注意:使用未定义的常量 LIBINJECTION_VERSION - 假设 'LIBINJECTION_VERSION' 在 /home/mohammed/libinjection/php/example.php 在第 6 行

Using libinjection LIBINJECTION_VERSION PHP Fatal error:  Call to undefined function new_libinjection_sqli_state() in

/home/mohammed/libinjection/php/example.php 第 9 行

在 php.ini 中我添加了 extension=libinjection.so 但我仍然收到错误消息。

有什么建议吗?

【问题讨论】:

    标签: php dynamic


    【解决方案1】:

    根据错误信息

    /usr/lib/php5/20121212/libinjection.so: 无法打开共享对象 文件:没有这样的文件或目录

    当您运行 make install 时,它没有将扩展安装到 PHP 正在寻找它的路径。

    找到它安装扩展的位置,并将libinjection.so复制到/usr/lib/php5/20121212,然后重新启动网络服务器(Apache、nginx等)并再次尝试运行您的代码。

    【讨论】:

    • 我认为他没有构建那个文件,libinjection.so 还不存在。顺便说一句,您需要重新加载 PHP,而不是网络服务器。只有在 PHP 内置或模块时才需要重启 webserver。
    【解决方案2】:

    要在 PHP 中构建扩展, 你首先需要在PHP文件夹中运行scripts/phpize

    和带有前缀的./configure 可以找到正确的文件夹。

    仅仅使用./configure && make && make install不够

    chmod +x /usr/local/src/php-5.6.9/scripts/phpize
    /usr/local/src/php-5.6.9/scripts/phpize
    
    ./configure --prefix /usr/local/src/php-5.6.9 \
    --with-libdir=/lib/x86_64-linux-gnu \
    

    使用./configure --help 获取可用选项。

    【讨论】:

      猜你喜欢
      • 2019-04-03
      • 2015-03-01
      • 2017-09-25
      • 1970-01-01
      • 2022-08-07
      • 2021-04-03
      • 2020-03-16
      • 2016-11-27
      • 2021-10-05
      相关资源
      最近更新 更多