在Linux上安装PHP:无法将/etc/apache2/modules/libphp5.so加载到服务器中

时间:2015-06-01 12:04:31

标签: php apache

我已经使用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:undefined symbol: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

1 个答案:

答案 0 :(得分:1)

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

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