实验要求: 在CentOS7上实现LAMP(使用rpm安装),功能如下: 在httpd上实现三个虚拟主机, 主机名分别为: Vhosts1:pma.Stud.com ,此虚拟主机支持https,实现PhpMyAdmin Vhosts2:wp.Stud.com,实现WordPress Vhosts3:dz.Stud.com,实现Discuz 实验环境: CentOS7系统一台(IP:172.16.99.100),所需的PhpAdmin,WordPress,Discuz的源码包。 实验步骤: 准备:挂载本地镜像,配置好本地yum源。 一.安装。 1.安装http,安装mysql,安装php。 所需的安装包,httpd,php,php-mysql,mariadb mariadb-server a.安装httpd,安装前检查是否安装过: ]# yum install httpd b.安装php,安装前检查php是否安装过。 ]# yum install php php-mysql c.安装mariadb ]# yum insall mariadb mariadb-server 检测是否安装成功: 2.安装完之后,进行测试。 安装完之后,启动各服务,进行相关的测试。 # systemctl start httpd.service # systemctl start mariadb.service 查看是否已经启动: 进行相关测试: 在httpd的网页站点/var/www/html/目录下,编写一个测试文件:index.php内容:
1
2
3
4
5
6
7
8
9
| <?php
$link = mysql_connect("127.0.0.1","root","");
if ($link)
echo "OK";
else
echo "Failure";
mysql_close();
phpinfo();
?>
|
测试前清空防火墙或者编写响应的防火墙规则。 关闭Selinux. 测试结果: 二.进行相关的虚拟主机配置: (1)关于phpmyadmin的虚拟主机的相关配置 1.修改相关的配置文件。(/etc/httpd/conf/httpd/.conf) 注释掉中心主机:#DocumentRoot "/var/www/html" 2.在/etc/httpd/conf.d/目录下,添加一个配置虚拟主机的配置文件vhosts.conf,添加内容如: 1
2
3
4
5
6
7
8
9
10
11
12
| <VirtualHost *:80>
DocumentRoot /web/vhosts/pma
ServerName pma.zkchang.com
ErrorLog /var/log/httpd/pmalog.err
CustomLog /var/log/httpd/pmalog.access common
<Directory "/web/vhosts/pma">
OPtions None
Allowoverride None
Require all denied
Require ip 172.16.0.0/255.255.0.0
</Directory>
</VirtualHost>
|
创建响应的站点目录。(一并创建其他目录)
3.在站点目录下创建一个文件进行测试(index.php) # vim /web/vhosts/pma/index.php <?php echo "This Vhost is pma host"; ?> 4.在本地创建的DNS服务器(zkchang.com IP:172.16.99.1)的正向区域数据库文件和反向区域数据库文件上,添加pma.zkchang.com的A记录和PTR记录: pma IN A 172.16.99.100 100 IN PTR pma.zkchang.com.
用本地的DNS服务器来解析客户端的pam.zkchang.com解析请求。
5.测试:本地主机测试:先修改DNS,再测试
6.安装PhpMyAdmin和相关的配置: a.下载PhpMyAdmin安装包,解压,复制到站点目录下。 ]# unzip phpMyAdmin-4.4.5-all-languages.zip # cp -a phpMyAdmin-4.4.5-all-languages /web/vhosts/pma/pma b.安装mbstring(本地yum安装mbstring) yum install php-mbstring c.在mariadb上创建一个普通用户,并授权 7.给mariadb的root用户设置密码,以便登录PHPMyAdmin。 MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('zkchang'); MariaDB [(none)]> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('zkchang'); 8.测试:进入phpmyadmin登录页面,输入账户和密码: 9.让此虚拟主机支持https: a.安装mod_ssl模块,使httpd服务支持ssl。 # yum install mod_ssl: 查看安装完之后,生成了那些配置文件。 ]# rpm -ql mod_ssl /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.modules.d/00-ssl.conf /usr/lib64/httpd/modules/mod_ssl.so /usr/libexec/httpd-ssl-pass-dialog /var/cache/httpd/ssl b.让CA颁发机构给httpd服务器颁发CA证书: 由于此前已经在IP:172.16.99.2上创建CA自签证书,在这就不在创建,直接在httpd服务器上生成私钥和颁发证书的请求:如: 在httpd上(172.16.99.100) 生成私钥: # (umask 077;openssl genrsa -out /etc/httpd/ssl/httppma.key 2048) 创建证书请求: # openssl req -new -key /etc/httpd/ssl/httppma.key -out /etc/httpd/ssl/httppma.csr -days 365 将证书请求发给CA颁发机构(172.16.99.2) c.CA颁发机构给httpd服务器创建证书: CA]# openssl ca -in /tmp/httppma.csr -out /etc/pki/CA/certs/httppma.crt -days 365 将证书发给httpd服务器: d.修改/etc/httpd/conf.d/ssl.conf配置文件,修改内容为: 在<VirtualHost _default_:443>做以下修改: 1
2
3
4
| DocumentRoot "/web/vhosts/pma"
ServerName pma.zkchang.com:443
SSLCertificateFile /etc/httpd/ssl/httppma.crt
SSLCertificateKeyFile /etc/httpd/ssl/httppma.key
|
e.重新启动服务进行测试 首先把CA颁发机构的CA自签证书拷贝到本地主机上,在本地主机上的浏览器上导入证书。 # systemctl restart httpd.service
(2)关于WordPress的虚拟主机的相关配置 1.在/etc/httpd/conf.d/vhosts文件中添加如下内容: 1
2
3
4
5
6
7
8
9
10
11
12
| <VirtualHost *:80>
DocumentRoot /web/vhosts/wp
ServerName wp.zkchang.com
ErrorLog /var/log/httpd/wplog.err
CustomLog /var/log/httpd/wp.access common
<Directory "/web/vhosts/wp">
Options None
AllowOverride None
Require all denied
Require ip 172.16.0.0/16
</Directory>
</VirtualHost>
|
2.在站点目录/web/vhosts/wp目录下创建一文件index.php进行测试: 在测试之前在在本地创建的DNS服务器(zkchang.com IP:172.16.99.1)的正向区域数据库文件和反向区域数据库文件上,添加wp.zkchang.com的A记录和PTR记录: wp IN A 172.16.99.100 100 IN PTR wp.zkchang.com. 3.下载安装WordPress,解压,复制到站点目录: # unzip wordpress-4.3.1-zh_CN.zip # cp -a wordpress /web/vhosts/wp/wp 修改/web/vhosts/wp/wp目录下的一个配置文件: # mv wp-config-sample.php wp-config.php 修改内容如下: # vim wp-config.php define('DB_NAME', 'wpdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', 'wpuser'); 4.创建上述的数据库,数据库用户名,和密码: 创建数据库:MariaDB [(none)]> CREATE DATABASE wpdb; 创建用户wpuser和密码: MariaDB [(none)]> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuser'; MariaDB [(none)]> CREATE USER 'wpuser'@'l27.0.0.1' IDENTIFIED BY 'wpuser'; 给用户授权: MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'wpuser'@'localhost'; MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'wpuser'@'127.0.0.1';
5.测试: (3)关于Discuz的虚拟主机的相关配置 1.在/etc/httpd/conf.d/vhosts文件中添加如下内容: 1
2
3
4
5
6
7
8
9
10
11
12
| <VirtualHost *:80>
DocumentRoot /web/vhosts/dz
ServerName dz.zkchang.com
ErrorLog /var/log/httpd/dzlog.err
CustomLog /var/log/httpd/dzlog.access common
<Directory "/web/vhosts/dz">
Options None
AllowOverride None
Require all denied
Require ip 172.16.0.0/16
</Directory>
</VirtualHost>
|
2.在站点目录/web/vhosts/dz目录下创建一文件index.php进行测试: 在测试之前在在本地创建的DNS服务器(zkchang.com IP:172.16.99.1)的正向区域数据库文件和反向区域数据库文件上,添加wp.zkchang.com的A记录和PTR记录: dz IN A 172.16.99.100 100 IN PTR dz.zkchang.com. 3.下载安装Discuz,解压,复制到站点目录; # unzip Discuz_X3.2_SC_GBK.zip 解压之后会产生三个目录文件: upload utility readme 将upload 这个目录复制到/web/vhosts/dz/zd目录下: # cp -a upload/ /web/vhosts/dz/dz 打开之后会出现页面乱码,修改httpd配置文件: AddDefaultCharset GBK即可。 在安装过程中会出现上述过程,此时需要创建数据库,用户和密码 4.创建数据库,用户和密码: 创建数据库:MariaDB [(none)]> CREATE DATABASE forumdb; 创建用户: MariaDB [(none)]> CREATE USER 'forumuser'@'localhost' IDENTIFIED BY 'forumuser'; MariaDB [(none)]> CREATE USER 'forumuser'@'127.0.0.1' IDENTIFIED BY 'forumuser'; 授权: MariaDB [(none)]> GRANT ALL ON forumdb.* TO 'forumuser'@'localhost'; MariaDB [(none)]> GRANT ALL ON forumdb.* TO 'forumuser'@'127.0.0.1'; 5.填入相应的值,一步步安装,最终结果:
|