您的位置:首页 > 运维架构 > Apache

Apache和PHP结合、Apache默认虚拟主机

2017-12-19 21:56 681 查看

11.14/11.15 Apache和PHP结合

配置httpd支持php

root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
#选择要使用PHP5或者PHP7解析

截图如下:



修改以下4个地方

第一个地方 ServerName 开启

#检索 ServerName 查找到如下这行,取消注释
#ServerName www.example.com:80

截图如下:



第二个地方 允许所有请求访问

#检索Directory 查找到Require all 这一行 denied修改成granted
<Directory />
AllowOverride none
Require all granted
</Directory>
#访问的时候会报403错误

截图如下:



第三个地方 授权PHP服务解析本机服务器

#在如下两行增加一行 AddType application/x-httpd-php .php
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
#在此添加“AddType application/x-httpd-php .php”,意思是允许PHP服务解析该服务器。

截图如下:



第四个地方

#检索 DirectoryIndex ,查找到如下行后增加 index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
#增加索引页
</IfModule>

截图如下:



测试语法

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

启动服务 | 加载配置

#可以用start选项启动服务
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
#该命令只是加载配置文件的内容

查看端口

[root@taoyun ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      994/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1098/master
tcp6       0      0 :::80                   :::*                    LISTEN      16461/httpd
tcp6       0      0 :::22                   :::*                    LISTEN      994/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1098/master
tcp6       0      0 :::3306                 :::*                    LISTEN      2196/mysqld

关闭防火墙

#未关闭防火墙,外网将无法访问
#iptables 临时增加允许通过80端口的规则 80端口 -D 选项是删除这条规则
[root@taoyun ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

测试是否能访问PHP页面

vim test.php文件,直接在浏览器访问该ip地址(访问内部站点直接用ip地址访问)
[root@localhost ~]# vim /usr/local/apache2.4/htdocs/test.php
#可以解析PHP代码,如果不支持,访问该文件时会显示源代码。


如果服务器无法解析PHP代码,解决方法:

检查Apache是否加载PHP模块

检查系统中有没有PHP模块

检查Apache配置文件中是否有错误或者没有加载PHP的配置

效果截图如下:



PHP 版本页面

[root@localhost ~]# vim /usr/local/apache2.4/htdocs/1.php

#1.php内容下:
<?php phpinfo(); ?>

#在访问该1.php的时候,直接打印PHP的相关信息

效果截图如下:



curl测试

[root@localhost ~]# curl localhost/test.php
123[root@localhost ~]#

补充:快捷键 Ctrl+r

ctrl+r用途:反向检索并调用执行过的命令(reverse-i-search)

11.16/11.17 Apache默认虚拟主机

Apache虚拟主机的用途

一台服务器可以访问多个网站,每个网站都是一个虚拟机主机

概念:域名(主机名)、DNS、解析域名、hosts

任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

实施步骤
第一步,修改Apache配置文件参数

#路径
[root@taoyun src]# vim /usr/local/apache2.4/conf/httpd.conf

#检索 httpd-vhosts 查找到后去掉如下这行的注释

#Include conf/extra/httpd-vhosts.conf

去掉注释的截图如下:



第二步,编辑虚拟主机配置文件

#配置httpd-vhosts.conf文件的参数
[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

截图如下:



#需要修改成如下参数:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/abc.com"
ServerName abc.com
ServerAlias www.abc.com www.123.com
ErrorLog "logs/abc.com-error_log"
CustomLog "logs/abc.com-error_log" common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>

内容定义说明:

ServerAdmin:指定管理员邮箱,这个没有什么实质作用。

DocumentRoot:指定域名所指向的地址(制定站点的根目录,用于存放网站文件的)

ServerName:定义网站域名

ServerAlias:定义别名(第二域名)可设置多个,用空格分隔。

Errorlog:站点的错误日志

Customlog:站点的访问日志。

此时即定义了一个网站,定义网站的核心参数即为:DocumentRoot(网站根目录)、ServerName(域名)。
注意: 虚拟主机生效后,原Apache配置文件中的默认主机(www.example.com ~ 192.168.19)就会失效(在此用www.example.com ~ 111.com进行验证)。

测试 && 加载

#需要设置站点的根目录,否则将会报错
root@adailinux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

[root@adailinux ~]# /usr/local/apache2.4/bin/apachectl graceful

虚拟主机测试

在此使用浏览器和curl命令分别进行测试,如果使用浏览器测试可以在Windows电脑中的 C:\Windows\System32\drivers\etc 目录下hosts文件中加入重定向域名,使直接访问Apache服务站点上,否则将无法测试,导致DNS直接解析到外网,从而访问外网网站,导致测试失败。
截图如下:





#curl测试
[root@taoyun src]# curl -x127.0.0.1:80 abc.com
abc.com [root@taoyun src]# curl -x127.0.0.1:80 111.com
111.com [root@taoyun src]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Apache PHP 结合