(1)配置概要:
1、 172.18.17.7主机运行httpd+php服务(php为模块工作模式)
配置两台虚拟主机:wordpress个人博客系统、PHPmyadmin远程控制MySQL
2、172.18.17.8主机运行mariadb服务(mysql)
(2)配置流程:
首先配置172.18.17.7主机:http服务
1、安装程序:
[root@johnson's linux ~]# yum install httpd php php-mysql php-mbstring
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
httpd x86_64 2.4.6-40.el7.CentOS base 2.7 M
php x86_64 5.4.16-36.el7_1 base 1.4 M
php-mbstring x86_64 5.4.16-36.el7_1 base 503 k
php-mysql x86_64 5.4.16-36.el7_1 base 99 k
Transaction Summary
=======================================================================================
httpd:提供web服务
php:安装后自动编译为httpd的模块,用于处理动态资源php脚本
php-mbstring:此程序包为phpMyAdmin远程控制mysql所必须的
php-mysql:php驱动mysql的库文件程序包
2、服务配置
包都安装完成之后,进入下一步的配置阶段:
(1)添加虚拟主机:(基于FQDN)
虚拟主机有三种配置方式:一种是基于不同ip,相同端口(80),二是相同IP不同端口,三是同一IP不同主机名(FQDN),不管何种配置方式,最后解析到的主机只有一台,但是在请求报文首部信息会有不同!以下,仅演示基于FQDN的配置方式
编辑:/etc/httpd/conf.d/vhost.conf文件
[root@johnson's linux ~]# vim /etc/httpd/conf.d/vhost.conf
# 添加如下内容,基于FQDN的虚拟主机配置
<VirtualHost 172.18.17.7:80> # 固定语法 <VirtualHost ip:port>可忽略大小写
ServerName # 很重要,基于FQDN的虚拟主机必须要有主机名
DocumentRoot "/www/host/htdoc" # 虚拟主机根目录,可指定路径
<Directory "/www/host/htdoc"> # 对虚拟主机根目录的权限设置
Options FollowSymLinks # FollowSymLinks 表示可以访问符号连接资源
require all Granted # 目录的权限设置
</Directory>
</VirtualHost>
<VirtualHost 172.18.17.7:80>
ServerName
DocumentRoot "/www/host2/htdoc"
<Directory "/www/host2/htdoc">
Options FollowSymLinks
require all Granted
</Directory>
</VirtualHost>
Options:为个目录的选项,可以指定多个特性
如:Index,启动资源索引,其作用是在用户在访问指定的URL不存在时,返回web资源索引,此选项
非常危险,不建议启用,否则源码则会web源码暴露,后果很严重
访问权限设定:
Require all Granted/deny, Granted表示允许,all表示所有,deny表示拒绝
需要注意的是:CentOS7是默认拒绝所有主机访问DocumentRoot的资源,所以,配置虚拟主机必须要配置此先参数
(2)为虚拟主机创建配置文件中定义的资源目录并
[root@johnson's linux ~]# mkdir/www/{host,host2}/htdoc
(3)添加测试资源
[root@johnson's linux ~]# vim /www/host/htdoc/index.php
# 前面这段是测试php与mysql连通性的PHP代码
<?php
$conn = mysql_connect('172.18.17.8','admin','admin'); # ip填写mysql主机ip
if ($conn) # 用户为mysql所授权的用户,密码空
echo "DATABASE Connet OK";
else
echo "DATABASE Connet Failure";
?>
# 测试php是否正常工作的php代码
<?php
phpinfo() #此函数调用会显示php的详细信息
?>