码迷,mamicode.com
首页 > Web开发 > 详细

CentOS 7 虚拟机搭建lamp (php-fpm),三者分离,https认证

时间:2016-04-28 15:29:52      阅读:529      评论:0      收藏:0      [点我收藏+]

标签:配置文件   阿里云   飞行员   虚拟机   认证   

1.主机规划

配置虚拟机中有至少 3台,操作系统都是centos7

1台httpd服务器(172.18.251.235)

1台php-fpm服务器(172.18.252.132)

1台MySQL服务器(172.18.252.0)

在搭建安装之前,我们首先了解一下它们之间分开工作的模式:

技术分享

在搭建lamp之前,我们先配置yum源,阿里云,搜狐,163开源镜像网站很多,在这儿我就不一一赘述了。

现在我们就开始利用yum源安装httpd(172.18.251.235)

~]# yum install httpd -y
一般centos7上的httpd都是2.4版本,2.4版本和2.2版本最大区别是:2.4版本默认支持fcgi模块,所以centos6上使用fcgi模块要自己编译安装,centos6上编译会再下次给大家介绍。

httpd的配置文件一般在/etc/httpd/conf/httpd.conf

                     /etc/httpd/conf.d/*.conf

安装完成后我们启动httpd服务

~]# systemctl start httpd.service
看一下是否监听于80端口

~]# ss -tnl

然后我们在另一台虚拟机上安装PHP-fpm,PHP-mysql(172.18.252.132)

~]# yum install php-fpm php-mysql -y

PHP-fpm是专用于将php运行于fpm模式,服务配置文件:/etc/php-fpm.conf,  /etc/php-fpm.d/*.conf

安装完成后,我们启动PHP-fpm服务

~]# systemctl start php-fpm.service

查看是否监听9000端口

技术分享

接着我们在另一台虚拟机上安装二进制mysql包(172.18.252.0)

(1) 准备数据目录;
         以/mydata/data目录为例;
(2) 安装配置mysql                       
             # useradd  -r  mysql
             # tar xf  mariadb-VERSION.tar.xz  -C  /usr/local
             # cd /usr/local
             # ln  -sv  mariadb-VERSION  mysql
             # cd  /usr/local/mysql
             # chown  -R  root:mysql  ./*     

             # mkdir /mydata/data -pv
     初始化:# scripts/mysql_install_db  --user=mysql --datadir=/mydata/data

提供一个服务脚本# cp  support-files/mysql.server   /etc/init.d/mysqld
         # chkconfig   --add  mysqld

弄配置文件 # cp  support-files/my-large.cnf  /etc/my.cnf     添加三个选项 # vim /etc/my.cnf

技术分享

(4) 启动服务
      # systemctl start mysql

如果启动时找不到mysql命令,需要配置环境变量后再启动服务

       # vim /etc/profile.d/mysql.sh
   加入:export PATH=/usr/local/mysql/bin:$PATH

看一下是否监听3306端口

技术分享

然后我们把httpd和PHP-fpm和mysql整到一起

基于IP的虚拟主机进行配置

在httpd和php-fpm两台服务器上分别创建URL路径的目录

# mkdir /apps/vhosts/b.net

修改httpd服务器上的配置文件

 # vim /etc/httpd/conf/httpd.conf (可以先复制一份配置文件,以免修改文件错误)

技术分享把这一行注释掉,然后看这一项是否开启,没开启的话,开启

技术分享

然后在/etc/httpd/conf.d/目录下创建vhosts.conf文件 

# vim /etc/httpd/conf.d/vhosts.conf 加入

技术分享

然后修改php-fpm服务器上配置文件,修改监听地址

 # vim /etc/php-fpm.d/www.conf

技术分享

技术分享

然后查看session目录的属主属组是否是Apache,如果不是请修改属主属组

#  chown  apache:apache  /var/lib/php/session

如果没有session文件需要创建

# mkdir  /var/lib/php/session

然后整合mysql

# mysql -uroot -proot

mysql>use mysql

mysql> select user,host,password from user; 显示user的信息;

 #下面的较为重要;这是授权PHP主机可以访问的

mysql> grant all privileges on *.* to ‘root‘@‘172.18.%。%‘ identified by ‘passwd‘;

mysql> select user,host,password from user;

mysql> flush privileges;  更新

先测试三者是否可以连接

在php-fpm服务器上创建测试文件

# vim /apps/vhosts/b.net/index.php

<?php                                                      

    $conn = mysql_connect(‘172.18.252.0‘,‘root‘,‘passwd‘);                     

                      if ($conn)
                            echo "OK";
                        else
                            echo "Failure";
?>    

打开浏览器输入地址(确保防火墙和selinux都是关闭的)

技术分享

现在我们以虚拟主机安装wordpress(安装包先下好的)

在httpd和php-fpm服务器上分别创建/apps/vhosts/c.org

在php-fpm服务器上 # cd /apps/vhosts/c.org

解压    # unzip wordpress

#chmod -R 777 wordpress

# cd  wordpress

备份配置文件:# cp  wp-config-sample.php  wp-config.php

然后在mysql服务器上登录mysql

# mysql -uroot -proot

授权:GRANT ALL ON wpdb.* TO wpuser@‘172.18.%.%‘ IDENTIFIED BY ‘wppass‘;   CREATE DATABASE wpdb;

然后修改wordpress配置文件

# vim wp-config.php

修改:/** WordPress数据库的名称 */
define(‘DB_NAME‘, ‘wpdb‘);

/** MySQL数据库用户名 */
define(‘DB_USER‘, ‘wpuser‘);

/** MySQL数据库密码 */
define(‘DB_PASSWORD‘, ‘wppass‘);

/** MySQL主机 */
define(‘DB_HOST‘, ‘172.18.252.132‘);

然后修httpd服务器的配置文件,因为是基于ip的虚拟主机

需要加ip地址:ifconfig eno16777736:0 172.18.251.234

# vim /etc/httpd/conf.d/vhosts.conf   加入

技术分享

然后重启三个服务器

技术分享

注意在hosts文件中添加解析地址

# vim     /etc/hosts  

172.18.251.235     www.b.net

172.18.251.234     www.c.org

然后在php-fpm服务器上把PHP加速器xcache装上

# yum install php-xcache

接下来我们 配置phpmyadmin并且提供https认证

先在httpd和php-fpm两台服务器上创建文件

# mkdir  /apps/vhosts/a.com

在php-fpm服务器上

# cd /apps/vhosts/a.com

# unzip phpMyAdmin   解压文件

#  ln -sv phpMyAdmin  pma   创建符号链接

# cd  pma

# cp config.sample.inc.php  config.inc.php  备份一份配置文件

# vim config.inc.php    修改配置文件

~]# openssl rand -base64 30  生成随机数加入里边

技术分享

指向数据库地址

技术分享

安装php-mbstring

# yum install php-mbstring -y

然后我们要改一下httpd服务器的配置文件

# vim /etc/httpd/conf.d/vhosts.conf

技术分享

之后我们重启一下服务,就能打开了。如果基于https认证,可以注释掉这些,之后就只有https才能访问了,不注释的话,http和https都能访问到。

接着我们就构建私有CA,因为我们要给httpd服务器做证书,我们要在另一台机器上构建私有CA

# cd  /etc/pki/CA

生成私钥

#  (umask 077;opemssl  genrsa  -out private/cakey.pem  1024)

生成自签证书:

#  openssl req  -new  -x509  -key  private/cakey.pem  -out  cacert.pem 

技术分享

(3) 为CA提供所需的目录及文件

~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}
~]# touch  /etc/pki/CA/{serial,index.txt}
~]# echo  01 > /etc/pki/CA/serial

要用到证书进行安全通信的服务器,需要向CA请求签署证书:

在httpd服务器上生成私钥,安装ssl模块,yum install mod_ssl -y

~]# mkdir  /etc/httpd/ssl
~]# cd  /etc/httpd/ssl
~]# (umask 077; openssl genrsa -out httpd.key  2048)

(2) 生成证书签署请求

~]# opensslreq -new -key /httpd.key -out httpd.csr -days 365

技术分享

(3) 将请求通过可靠方式发送给CA主机;
# scp certs/httpd.csr  root@172.18.252.0:/tmp

(4) 在CA主机上签署证书(172.18.252.0)
~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

(5)签署完证书以后发给服务器主机
~]# scp /etc/pki/CA/certs/httpd.crt root@172.18.251.235:/etc/httpd/ssl/httpd.crt

备份配置文件

# cp /etc/httpd/conf.d/ssl.conf   ssl.conf.apk

然后我们要修改ssl配置文件

# vim /etc/httpd/conf.d/ssl.conf

技术分享

技术分享

因为基于ip地址配置的虚拟机,所以在httpd服务器上

# ifconfig eno16777736:1 172.18.251.233

然后在hosts文件中加入

172.18.251.233  www.a.com

然后在windos中hosts文件中也加入(C:\Windows\System32\drivers\etc)

172.18.251.235  www.b.net

172.18.251.234  www.c.org

172.18.251.233  www.a.com

然后在浏览器中打开,导入证书,设定权限。最后结果:

技术分享

本文出自 “11295442” 博客,请务必保留此出处http://11305442.blog.51cto.com/11295442/1768620

CentOS 7 虚拟机搭建lamp (php-fpm),三者分离,https认证

标签:配置文件   阿里云   飞行员   虚拟机   认证   

原文地址:http://11305442.blog.51cto.com/11295442/1768620

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!