【问题标题】:Installing PHP on Linux: Cannot load /etc/apache2/modules/libphp5.so into server在 Linux 上安装 PHP:无法将 /etc/apache2/modules/libphp5.so 加载到服务器中
【发布时间】:2015-08-14 21:14:31
【问题描述】:

我已经用yum install php 安装了PHP,之后我在httpd.conf 中添加了以下几行

LoadModule php5_module modules/libphp5.so
....
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

然后我将libphp5.so 复制到/var/apache2/modules。然后我说/etc/apache2/bin/apachectl -k stop,得到如下错误。

httpd:/etc/apache2/conf/httpd.conf 第 57 行的语法错误:不能 将 /etc/apache2/modules/libphp5.so 加载到服务器中: /etc/apache2/modules/libphp5.so:未定义符号:ap_unixd_config

安装的 PHP 版本是5.4.41。操作系统是CentOS Linux release 7.1.1503

谁能告诉我问题出在哪里?

UPD Apache 版本是 2.4.6(64 位),httpd.conf 的第 57 行是LoadModule php5_module modules/libphp5.so

【问题讨论】:

  • 第57行是哪一个?
  • 你运行的是什么版本的 Apache?
  • @Sizons CentOS 7 的库存 Apache 是 2.4.6
  • @JayBlanchard,@Sizons,我已经更新了问题!
  • @Eugeny89 你从哪个仓库安装 PHP?

标签: php apache


【解决方案1】:

奇怪的是,您使用 yum 安装了 PHP,然后将 php.so 添加到 Apache。 RPM 应该为您做到这一点(这是包管理器背后的全部想法)。在 CentOS 7 中,.so 文件被加载到/etc/httpd/conf.modules.d 中(你应该有一个类似10-php.conf 的文件)。还应该有一个 /etc/httpd/conf.d/php.conf 文件,其中添加了您的 FilesMatch 指令。如果您定义这些两次,您可能会导致问题。

我还建议您使用比 5.4 更高版本的 PHP(当今年晚些时候发布 PHP 7.0 时,此版本将进入End Of Life)。如果您不使用Remi repo,那么我会设置它,您可以获得 5.5 或 5.6。我自己使用这个,没有你提到的任何问题。也可能是您安装的 PHP 版本未针对 CentOS 7 编译(此问题是 Apache 2.4 独有的)。 Remi 确实有一个 CentOS 7 存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 2017-12-04
    相关资源
    最近更新 更多