ldd -d libphp5.so 导致多个未定义的符号错误。如何解决?

ldd -d libphp5.so resulting multiple undefined symbol errors. How to fix the same?

提问人:Rao 提问时间:8/14/2023 最后编辑:Rao 更新时间:8/14/2023 访问量:50

问:

从源代码安装了 Apache 2.4.54 和 PHP 5.6.32。

以下是使用的配置选项。

阿帕奇:

./configure \
        --prefix=${APACHE_PREFIX} \
        --enable-module=most \
        --enable-rewrite \
        --enable-auth-digest \
        --enable-ssl \
        --with-openssl-dir=${OPENSSL} \
        --with-included-apr \
        --enable-lib64 \
        --with-httpd24 \
        --enable-mbstring \
        --enable-so \
        --with-mpm=worker \
        --enable-cgi

和 PHP:

./configure \
        --prefix=${PHP_PREFIX} \
        --with-config-file-path=${PHP_PREFIX}/lib \
        --with-tsrm-pthreads \
        --disable-short-tags \
        --enable-mbstring \
        --enable-opcache \
        --with-xsl=${LIBXSLT_PREFIX} \
        --with-zlib=${ZLIB_PREFIX} \
        --with-openssl-dir=${OPENSSL} \
        --with-ssl \
        --with-gd

安装成功。

libphp5.so apache2_installation/modules 目录下创建了一个共享对象文件。

执行时,它表示已加载php5_moduleapachectl -M

执行时,它会显示 Syntax OK'apachectl -t

但是,当执行时,它会说:ldd -d libphp5.so

undefined symbol: ap_server_root    (./libphp5.so)
undefined symbol: apr_pool_cleanup_null (./libphp5.so)
undefined symbol: ap_unixd_config   (./libphp5.so)
undefined symbol: ap_loaded_modules (./libphp5.so)

我想,我可能错过了什么。然后尝试了docker image。结果仍然是一样的。php:5.6-apache

当 libphp5.so 用作其他来源的依赖项时,我遇到了上述问题。并且无法继续。

只是在寻找克服上述未定义符号问题的方法,搜索了很多徒劳无功。

感谢任何帮助!

编辑:

找到这个链接,上面写着使用 Apache 2.2,但我不得不使用 TLS v1.3。

apache2.4 php-5.6 未定义符号

评论

0赞 CodeCaster 8/14/2023
“感谢任何帮助!”-伟大。您是否尝试过升级这个已经不支持五年的堆栈?
0赞 Rao 8/14/2023
我理解并不得不使用 php 5.6。顺便说一句,尝试了docker image来查看,但仍然是相同的问题。php:7.4-apache
0赞 CodeCaster 8/14/2023
是的,我知道你有理由,但你是否明白PHP版本已经不支持五年了,你可以通过升级应用程序来缓解这种情况?
0赞 Rao 8/14/2023
@CodeCaster,明白你的意思了。如之前的评论所述,这就是为什么尝试 php7 docker 以快速查看它是否消失的原因,但事实并非如此。

答: 暂无答案