首先,說一下問題發(fā)生的場景:
在CentOS 7下用 yum 安裝 apache ,因為 CentOS 的源自帶 php 5.4 不能符合環(huán)境要求,而不想用其他源,所以選擇源碼編譯安裝 php 5.6
安裝完畢后,apache 不解析 php ,不解析的現(xiàn)象是瀏覽器直接顯示或下載了 php 文件的源代碼
過程略帶說一下了,具體步驟自行搜索,然后重點說下容易踩的幾個坑
1. yum 安裝 apache 后,必須安裝依賴包 httpd-devel ,否則是不存在文件 apxs 的,而 apxs 的路徑在編譯 php 時需要配置
yum install httpd
yum install httpd-devel
2. 查看 apsx 所在路徑
rpm -ql httpd-devel|grep apxs
/usr/bin/apxs //此行為 grep 結(jié)果,不同系統(tǒng)的路徑可能不同,以實際結(jié)果為準,下同
/sur/share/man/man1/apxs.1.gz
3. 編譯php時,加入 apxs 路徑參數(shù),作用是促使生成 libphp5.so
./configure
–with-apxs2=/usr/bin/apxs
4. 安裝
make && make install
5. 配置服務(wù)、啟動服務(wù)、環(huán)境變量,此處略
6. 修改apache配置文件,Centos7.4 下的apache2.4的配置文件路徑為
vim /etc/httpd/conf/httpd.conf
//在LoadModule后面添加:LoadModule php5_module modules/libphp5.so //不添加則訪問.php文件將會變成下載
//在DirectoryIndex后面添加:index.php
//在AddType application/x-gzip .gz .tgz后面添加:AddType application/x-httpd-php .php //.php前面有一個空格
7. 重啟服務(wù)
常用命令
#設(shè)置開機啟動:
systemctl enable httpd.service
#啟動服務(wù):
systemctl start httpd.service
#停止服務(wù):
systemctl stop httpd.service
#重啟服務(wù):
systemctl reload httpd.service