配置PHP啓動Apache服務報錯

在新的服務器(centos 6.3)編譯安裝完php-5.4.8,再配置好php.ini和httpd.conf後,啓動apache-2.4.3的時候,命令執行/usr/local/apache2/bin/apachectl start時,提示: php

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。 linux

若是經過rpm -qa|grep bison發現沒有安裝bison,安裝bison便可。centos能夠用yum install bison apache

可是我發現已經安裝了bison-2.4.1。最後實在是沒辦法了,下載了bison-2.5的rpm包直接安裝。 centos

[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時,錯誤提示以下: spa

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 rest

這個是因爲SELinux保護模式引發的。有2種方法能夠解決。 code

第一種:永久關閉SELinux保護模式(不推薦,給服務器帶來風險) server

[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
相關文章
相關標籤/搜索