设为首页 收藏本站
查看: 1384|回复: 0

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-29 17:43:06 | 显示全部楼层 |阅读模式
1.主机规划
配置虚拟机中有至少 3台,操作系统都是centos7
1台httpd服务器(172.18.251.235)
1台php-fpm服务器(172.18.252.132)
1台MySQL服务器(172.18.252.0)


在搭建安装之前,我们首先了解一下它们之间分开工作的模式:
wKiom1chr7OQ8ApHAAKJyGi1Hr0958.png
在搭建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端口
wKiom1chr_ezT6tsAAAVhm8FvY8935.png

接着我们在另一台虚拟机上安装二进制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

wKiom1chsDPSEZ93AAAcH3fwJg4296.png

(4) 启动服务
      # systemctl start mysql
如果启动时找不到mysql命令,需要配置环境变量后再启动服务
       # vim /etc/profile.d/mysql.sh
   加入:export PATH=/usr/local/mysql/bin:$PATH
看一下是否监听3306端口
wKioL1chsTTiREJKAAATsiVZWNE784.png

然后我们把httpd和PHP-fpm和mysql整到一起
基于IP的虚拟主机进行配置
在httpd和php-fpm两台服务器上分别创建URL路径的目录
# mkdir /apps/vhosts/b.net
修改httpd服务器上的配置文件
# vim /etc/httpd/conf/httpd.conf (可以先复制一份配置文件,以免修改文件错误)
wKioL1chsYSBGJgaAAAHFqxAvFM888.png 把这一行注释掉,然后看这一项是否开启,没开启的话,开启
wKiom1chsPPhd9NFAAAHm07vyKI250.png

然后在/etc/httpd/conf.d/目录下创建vhosts.conf文件
# vim /etc/httpd/conf.d/vhosts.conf 加入
wKiom1chsSvwRlbeAABdsYdp9u4869.png

然后修改php-fpm服务器上配置文件,修改监听地址
# vim /etc/php-fpm.d/www.conf

wKioL1chsjXhKJMVAAALQddeIMI873.png

wKiom1chsYGQ5OgkAAALdhSWCzc386.png

然后查看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

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

                      if ($conn)
                            echo "OK";
                        else
                            echo "Failure";
?>   
打开浏览器输入地址(确保防火墙和selinux都是关闭的)

wKiom1chsgvRIfO5AABEaV2by0Q966.png

现在我们以虚拟主机安装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   加入

wKioL1chsyOgTWa5AABbjedZAqg794.png

然后重启三个服务器
wKioL1chtRuBuYPMAACNqhySWzs804.png

注意在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  生成随机数加入里边
wKiom1chtIqTriZ-AAAY6NPBrbM761.png
指向数据库地址
wKiom1chtM3x8djmAAAV26sh5Nc968.png

安装php-mbstring
# yum install php-mbstring -y
然后我们要改一下httpd服务器的配置文件
# vim /etc/httpd/conf.d/vhosts.conf
wKiom1chtPmgdTSAAABZkYs-SBM433.png

之后我们重启一下服务,就能打开了。如果基于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
wKioL1chtfGDOdjxAAA78dXL79M909.png

(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
wKioL1chth7xpGdAAABWfkfBzRo380.png

(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
wKiom1chtYmiy46YAABctofwOho111.png

wKioL1chtnLR0SpGAAA1yL8_TaE684.png

因为基于ip地址配置的虚拟机,所以在httpd服务器上
# ifconfig eno16777736:1 172.18.251.233

然后在hosts文件中加入
172.18.251.233  www.a.com
然后在windos中hosts文件中也加入(C:WindowsSystem32driversetc)
172.18.251.235  www.b.net

172.18.251.234  www.c.org

172.18.251.233  www.a.com

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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-210513-1-1.html 上篇帖子: Windows PHP 集成开发工具-WAMP/XAMPP 下篇帖子: linux LNMP环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表