在LAMP架构中,Apache通过PHP模块与Mysql建立连接,读写数据。那么配置Apache和PHP结合的步骤是怎么操作的呢?
1、修改http.conf文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[root@juispan ~]
# cat /usr/local/apache2.4/conf/httpd.conf
......
#ServerName
......
<Directory />
AllowOverride none
Require all denied
<
/Directory
>
......
<IfModule dir_module>
DirectoryIndex index.html
<
/IfModule
>
......
AddType application
/x-compress
.Z
AddType application
/x-gzip
.gz .tgz
......
[root@juispan ~]
# vi /usr/local/apache2.4/conf/httpd.conf
......
ServerName
##取消了注释号
......
<Directory />
AllowOverride none
Require all granted
##更改了denied限制
<
/Directory
>
......
<IfModule dir_module>
DirectoryIndex index.html index.php
##增加了“index.php”
<
/IfModule
>
......
AddType application
/x-compress
.Z
AddType application
/x-gzip
.gz .tgz
AddType application
/x-httpd-php
.php
##增加了这行
......
|
2、检查与启动httpd
1
2
3
4
|
[root@juispan ~]
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@juispan ~]
# /usr/local/apache2.4/bin/apachectl start
/usr/local/apache2
.4
/bin/apachectl
: 行 79: 57987 段错误 $HTTPD -k $ARGV
|
启动出错,因为这里有两个php的模块,注释掉一个即可。
1
2
3
4
5
6
7
8
9
|
[root@juispan ~]
# cat /usr/local/apache2.4/conf/httpd.conf | grep -i php
#LoadModule php5_module modules/libphp5.so ##这里用php 7
LoadModule php7_module modules
/libphp7
.so
DirectoryIndex index.html index.php
AddType application
/x-httpd-php
.php
[root@juispan ~]
# /usr/local/apache2.4/bin/apachectl start
[root@juispan ~]
# /usr/local/apache2.4/bin/apachectl -M | tail -2
alias_module (shared)
php7_module (shared)
|
使用graceful能直接刷新配置,而不重启httpd服务。按ctrl+r能搜索命令历史。
1
|
(reverse-i-search)`graceful':
/usr/local/apache2
.4
/bin/apachectl
graceful
|
3、修改防火墙
1
2
3
4
|
[root@juispan ~]
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@juispan ~]
# iptables -nvL | grep ':80'
0 0 ACCEPT tcp -- * * 0.0.0.0
/0
0.0.0.0
/0
tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0
/0
0.0.0.0
/0
tcp dpt:80 ctstate NEW
|
4、配置测试页
1
2
3
4
|
[root@juispan ~]
# vi /usr/local/apache2.4/htdocs/1.php
<?php
phpinfo();
?>
|
5、客户端打开测试页面(ip/1.php)
▎如果客户端解析不出来,可以从以下几方面进行排查:
1)检查php模块是否被加载
1
2
|
[root@juispan ~]
# /usr/local/apache2.4/bin/apachectl -M | tail -1
php7_module (shared)
|
2)检查php模块文件是否存在
1
2
3
|
[root@juispan ~]
# ls /usr/local/apache2.4/modules/libphp*
/usr/local/apache2
.4
/modules/libphp5
.so
/usr/local/apache2
.4
/modules/libphp7
.so
|
3)检查配置文件是否正确
1
2
3
4
5
|
[root@juispan ~]
# cat /usr/local/apache2.4/conf/httpd.conf | grep 'php'
#LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules
/libphp7
.so
DirectoryIndex index.html index.php
AddType application
/x-httpd-php
.php
|
配置文件中,有三条php相关的命令,需要逐一检查。
还可以检查下配置语法是否正确:
1
2
|
[root@juispan ~]
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
|
然后,确认完全无误后,重新尝试打开测试页面。
本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1951770,如需转载请自行联系原作者