CentOS7上实现LAMP
实验要求:
在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内容:
测试前清空防火墙或者编写响应的防火墙规则。
关闭Selinux.
测试结果:
二.进行相关的虚拟主机配置:
(1)关于phpmyadmin的虚拟主机的相关配置
1.修改相关的配置文件。(/etc/httpd/conf/httpd/.conf)
注释掉中心主机:#DocumentRoot "/var/www/html"
2.在/etc/httpd/conf.d/目录下,添加一个配置虚拟主机的配置文件vhosts.conf,添加内容如:
DocumentRoot /web/vhosts/pma ServerName pma.zkchang.com ErrorLog /var/log/httpd/pmalog.err CustomLog /var/log/httpd/pmalog.access common OPtions None Allowoverride None Require all denied Require ip 172.16.0.0/255.255.0.0
创建响应的站点目录。(一并创建其他目录)
3.在站点目录下创建一个文件进行测试(index.php)
# vim /web/vhosts/pma/index.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)
# scp ssl/httppma.csr [email protected]:/tmp
c.CA颁发机构给httpd服务器创建证书:
CA]# openssl ca -in /tmp/httppma.csr -out /etc/pki/CA/certs/httppma.crt -days 365
将证书发给httpd服务器:
CA]# scp certs/httppma.crt [email protected]:/etc/httpd/ssl
d.修改/etc/httpd/conf.d/ssl.conf配置文件,修改内容为:
在
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
10.测试:使用https://pma.zkchang.com/pma进行测试
(2)关于WordPress的虚拟主机的相关配置
1.在/etc/httpd/conf.d/vhosts文件中添加如下内容:
DocumentRoot /web/vhosts/wp ServerName wp.zkchang.com ErrorLog /var/log/httpd/wplog.err CustomLog /var/log/httpd/wp.access common Options None AllowOverride None Require all denied Require ip 172.16.0.0/16
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文件中添加如下内容:
DocumentRoot /web/vhosts/dz ServerName dz.zkchang.com ErrorLog /var/log/httpd/dzlog.err CustomLog /var/log/httpd/dzlog.access common Options None AllowOverride None Require all denied Require ip 172.16.0.0/16
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
打开浏览器测试:http://dz.zkchang.com/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.填入相应的值,一步步安装,最终结果: