> 백엔드 개발 > PHP 튜토리얼 > 配置PHP启动Apache服务报错

配置PHP启动Apache服务报错

WBOY
풀어 주다: 2016-06-21 08:45:49
원래의
1546명이 탐색했습니다.

在新的服务器(centos 6.3)编译安装完php-5.4.8,再配置好php.ini和httpd.conf后,启动apache-2.4.3的时候,命令执行/usr/local/apache2/bin/apachectl start时,提示:

httpd: Syntax error on line 146 of /etc/httpd/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: undefined symbol: zend_parse_parameters

通过搜索发现,说是缺少bison。

如果通过rpm -qa|grep bison发现没有安装bison,安装bison即可。centos可以用yum install bison

但是我发现已经安装了bison-2.4.1。最后实在是没办法了,下载了bison-2.5的rpm包直接安装。

[root@localhost ~]#  wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz [root@localhost ~]#  tar -zxvf bison-2.5.tar.gz [root@localhost ~]#  cd bison-2.5 [root@localhost ~]#  ./configure [root@localhost ~]#  make && make install
로그인 후 복사

再重新编译安装了PHP。然后/usr/local/apache2/bin/apachectl start启动Apache。惊奇的发现可以正常启动了,测试了下PHP网页,可以正常访问。

听说还有别人会报下面这个错误,我也一起写出来。

命令执行/usr/local/apache2/bin/apachectl start时,错误提示如下:

httpd: Syntax error on line 146 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

这个是由于SELinux保护模式引起的。有2种方法可以解决。

第一种:永久关闭SELinux保护模式(不推荐,给服务器带来风险)

[root@localhost ~]#  vi /etc/selinux/config 
로그인 후 복사

将SELINUX=enforcing 改成SELINUX=disabled

保存重启系统。

第二种方法:临时关闭selinux模式
[root@localhost ~]#   setenforce 0 [root@localhost ~]#  chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so
로그인 후 복사

如果上面的命令报错,可以试试这个chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so

如果还有报错,请使用帮助,根据帮助写命令。

[root@localhost ~]#  service httpd restart [root@localhost ~]#  setenforce 1
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿