我正在 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
。