LAMP-Apache和PHP的结合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP-Apache和PHP的结合相关的知识,希望对你有一定的参考价值。

    在LAMP架构中,Apache通过php模块与mysql建立连接,读写数据。那么配置Apache和PHP结合的步骤是怎么操作的呢?


1、修改http.conf文件

[[email protected] ~]# 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
......
[[email protected] ~]# 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

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl start
/usr/local/apache2.4/bin/apachectl: 行 79: 57987 段错误               $HTTPD -k $ARGV

启动出错,因为这里有两个php的模块,注释掉一个即可。

[[email protected] ~]# 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
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl start
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M | tail -2
 alias_module (shared)
 php7_module (shared)

使用graceful能直接刷新配置,而不重启httpd服务。按ctrl+r能搜索命令历史。

(reverse-i-search)`graceful‘: /usr/local/apache2.4/bin/apachectl graceful

3、修改防火墙

[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT^C
[[email protected] ~]# 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、配置测试页

[[email protected] ~]# vi /usr/local/apache2.4/htdocs/1.php
<?php
phpinfo();
?>

5、客户端打开测试页面(ip/1.php)

技术分享


▎如果客户端解析不出来,可以从以下几方面进行排查:

1)检查php模块是否被加载

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M | tail -1
 php7_module (shared)

2)检查php模块文件是否存在

[[email protected] ~]# ls /usr/local/apache2.4/modules/libphp*
/usr/local/apache2.4/modules/libphp5.so
/usr/local/apache2.4/modules/libphp7.so

3)检查配置文件是否正确

[[email protected] ~]# 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相关的命令,需要逐一检查。


还可以检查下配置语法是否正确:

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK


然后,确认完全无误后,重新尝试打开测试页面。

本文出自 “A man & A computer” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1951770

以上是关于LAMP-Apache和PHP的结合的主要内容,如果未能解决你的问题,请参考以下文章

LAMP-Apache虚拟主机

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

超实用的php代码片段

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

结合两个代码片段?将用户输入的 Youtube url 转换为嵌入 url,然后将 iframe src 替换为转换后的 url

超级有用的9个PHP代码片段