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

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 [email protected]‘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  [email protected]:/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 [email protected]:/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

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

时间: 2024-11-03 01:39:04

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

Centos 6.4搭建LAMP

网上关于LAMP的文章很多,但是一部分因为系统环境或软件升级原因不能使用或者有一些小小的问题,本文由网上资料整理得出,在centos6.4及6.2系统上经过验证,如有问题可以留言大家相互讨论,本人新手,希望能够一起学习进步. 需要软件列表 apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 zlib-1.2.8.tar.gz pcre-8.34.tar.gz httpd-2.4.9.tar.gz php-5.5.6.tar.gz mysql-5.5.25.tar.g

Centos 6.4 搭建lamp环境(系列1)

大部分软件我们都是编译安装的,编译安装的是可以自行调整编译参数,自己可以调整需要的结果,也比较安全. 原创博文来自:www.51niux.com  博主:忙碌的柴少 网上yum安装的博客比较多,编译安装的也不少,废话不多说. 环境版本: 系统环境:Centos 6.4 64位 apache版本:apache 2.29 php版本:php 5.3.27 mysql版本:5.1.72 一.mysql编译安装: 扯两句,mysql服务器我们一般是单独的一台服务器,如果是集群环境这里就简单安装一下就行,

peak学Linux--基于centos 6.5搭建LAMP并安装Discuz X3.2

实验环境: VMware Workstation 10.0.0 build-1295980 centos 6.5 32位(系统ip:192.168.10.50,与物理机桥接,保证可以上外网) 所需的压缩包及下载地址 mysql-5.1.72-linux-i686-glibc23 http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-i686-glibc23.tar.gz php-5.3.28 http://mirrors.sohu.

在CentOS 7 上搭建LAMP

要求:httpd的动态和静态资源分为两台主机提供,mysql也用单独一台主机.httpd服务提供虚拟主机,一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress.安装使用xcache为php服务提速. 方案:1台主机作为httpd服务器,1台主机做php服务器,使用php-fpm模式,1台主机作为mysql数据库服务器. 准备工作:三台主机,配置好yum源. 第一步:配置httpd服务器 yum安装httpd包 ~]# yum install httpd 启动服务 测

CentOS下快速搭建LAMP环境

LAMP --  Linux Apache MySQL PHP 在CentOS安装的顺序,我一般是Apache -> MySQL -> PHP 第一步.安装并配置Apache 1.使用yum安装 yum install httpd 2.修改防火墙配置,打开80端口,可以顺便把MySQL的3306端口也打开 vi /etc/sysconfig/iptables 添加两条记录 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACC

CentOS 6下搭建LAMP环境

第一步,使用Xshell管理工具连接远程服务器 第二步,输入服务器账号密码登录远程服务器 如果centos内置的yum源可用的软件偏少或者版本过低,请更新! 首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份) cd /etc/y

在CentOS 7上搭建lamp环境

在CentOS 7上安装httpd.php.MariaDB,ServerIP 192.168.199.157 首先安装相关程序包 2.启动httpd和mariadb 3.查看各服务启动情况 80端口和3306端口都处于监听状态了 4.测试php (1)编辑/etc/httpd/conf/httpd.conf文件,在DirectoryIndex后面填写index.php,定义默认主页为index.php. (2)检查配置文件是否有语法错误. (3)制作默认主页index.php. (4)重载htt

CentOS 7.0 搭建LAMP环境

一.apache.php.mysql安装 安装顺序:apache/mysql    最后安装php   前两者顺序无所谓. 1.安装apache 需要服务器联网 安装:yum install -y httpd 运行:/bin/systemctl start httpd.service 执行完运行命令之后是看不到效果的,这时候再输入查看apache服务状态命令来查看服务是否已经启动: 查看状态:service httpd status Apache开启服务:systemctl start http

CentOS linux系统搭建LAMP环境

准备工作: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT #允许3306端口通过防火墙 将以上内容添加到 -A INPUT -m state –state NEW -m t