Apache 加载 PHP 模块-未定义符号:unixd_config

Apache 加载 PHP 模块-未定义符号:unixd_config

我正在 RedHat 6.5 上配置新的 Web 服务器,并尝试php5在 Apache 2.4.6 上启用该模块:

LoadModule php5_module /usr/path/to/libphp5.so
AddType application/x-httpd-php .php
  • 当我使用 Apache 检查时,我收到有关 行的 httpd.conf以下错误:LoadModule
    Cannot load /usr/path/to/libphp5.so into server: /usr/path/to/libphp5.so: 
    undefined symbol: unixd_config
    

我想知道问题是否是因为我安装了两个 PHP 版本?Apache 应该使用别名php55;它的配置是什么?

答案1

Apache API 从 2.2 更改为 2.4,并重unixd_config命名为ap_unixd_config(参见API 从 2.2 变为 2.4)。

您需要一个与 Apache 2.4 兼容的 PHP 模块版本,否则请继续使用 Apache 2.2。

答案2

rpm -ql apache-mod_php-7.3.17-1.mga7
  /etc/httpd/conf/modules.d/00-php-fpm.conf
  /etc/httpd/conf/modules.d/70_mod_php.conf
  /usr/lib/.build-id
  /usr/lib/.build-id/e1
  /usr/lib/.build-id/e1/a7d9b6acb73030cd6809458ba4fd2bd91b66f7
  /usr/lib64/httpd/modules/mod_php.so

head -n 1 /etc/httpd/conf/modules.d/00-php-fpm.conf 
  requires apache-mod_proxy (mod_proxy.so + mod_proxy_fcgi.so)

urpmi apache-mod_proxy

这是针对 Mageia 的;对于其他操作系统,请使用特定于该操作系统的包管理器。

答案3

我使用了以下内容并libphp5.so自行构建:

<FilesMatch \.php$>
  SetHandler application/x-httpd-php
</FilesMatch>
PHPIniDir "/path/to/php/lib"

答案4

出现此问题的原因之一undefined symbol: unixd_config是您的 LoadModule 名称错误。

例如,LoadModule was_app22_module /opt/IBM/WebSphere/Plugins/bin/64bits/mod_was_ap22_http.so会导致此错误,因为was_app22_module有一个额外的p;它应该是was_ap22_module

相关内容