LAMP系列之(php-fpm模式)分布三台机器部署

LAMP系列之(php-fpm模式)分布三台机器部署

现在我们需要做一个实验,就是把apache , php-fpm , mariadb ,分别安装在3台机器上,协同工作具体如下:

192.168.42.150  apache
192.168.42.151  php-fpm
192.168.42.152  mariadb

关闭防火墙
关闭selinux

分别给这3台机器设定好IP和主机名及时间同步

1.在[192.168.42.152 mariadb]安装mariadb

yum install mariadb-server -y

1).配置server.cnf

cp /etc/my.cnf.d/server.cnf{,.back}
vim /etc/my.cnf.d/server.cnf    ##mariadb服务器端配置文件##
[mysqld]        ##以下项是优化项目可根据需要选择## 
innodb_file_per_table=1 ##使用独立表空间模式(建议使用)##
skip_name_resolve=1  ##禁止域名反向解析(可选)##

2).安装完成后安全配置

systemctl start mariadb.service     ##启动mariadb服务
systemctl enable mariadb.service    ##设置为开机启动##
mysql_secure_installation           ##安装完成后安全初始化,添加root密码,删除匿名登录账户,禁止远程使用root用户登录,删除测试数据库和使用##

我这里直接用`mysqladmin -uroot -p password "root"`更改密码了

2.在[192.168.42.151 php-fpm]安装php模块及php-fpm

yum -y install php-fpm php-mysql php-gd php-mbstring php-mcrypt

3.配置或者优化php-fpm

注意:必须创建用户apache

cp /etc/php-fpm.d/www.conf{,.back}
vim /etc/php-fpm.d/www.conf
listen = 192.168.42.151:9000  #监听本机9000端口,不能是127.0.0.1了,需要换成本机ip地址
listen.allowed_clients = 192.168.42.150 #授权允许192.168.42.150连接
pm.max_spare_servers = 15
pm.status_path = /pmstatus
ping.path = /ping
ping.response = pong
默认/var/lib/php/session目录不存在,所以我们要创建此目录
mkdir -pv /var/lib/php/session
chown  apache:apache  /var/lib/php/session

4.启动php-fpm

systemctl start php-fpm.service
ss -tnl

State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128            *:22                         *:*                  
LISTEN     0      100    127.0.0.1:25                         *:*                  
LISTEN     0      128    127.0.0.1:9000                       *:*                  
LISTEN     0      50             *:3306                       *:*                  
LISTEN     0      128           :::22                        :::*                  
LISTEN     0      100          ::1:25                        :::*

5.安装httpd

yum install httpd -y
httpd -M 确保有 proxy_fcgi_module (shared)模块
否则无法与后端程序进行通信

6.创建应用目录和授权目录

注意:因为我们此次试验是将apache 和 php-fpm 分开部署的, 用户访问的动态资源请求会直接转到 [192.168.42.151 php-fpm]主机上, 因此我们的网站目录也需要部署到 [192.168.42.151 php-fpm]主机上 也就是说,网站目录在[192.168.42.151 php-fpm]和[192.168.42.150 apache]各有一份 那么我们怎么做呢.只需要在[192.168.42.150 apache]部署完成以后直接推送到[192.168.42.151 php-fpm]主机上

scp -rp /application  root@192.168.42.151:/    即可,原理讲完了,我们来部署吧

在 [192.168.42.150 apache]主机上

mkdir -p /applicpation/www
chown -R apache:apache /application/www
在www目录里面创建test目录,并创建一个index.php测试页
cd /application/www
mkdir test && cd test
vim index.php
<?php
   phpinfo();
?>

7.配置代理和httpd虚拟主机,并支持PHP

注意:因为我们此次试验是将apache 和 php-fpm 分开部署的,代理需要写php-fpm主机的ip地址

vim  /etc/httpd/conf.d/test.conf

<VirtualHost *:80>
    ServerName www.test.com
    DocumentRoot /application/www/test
    ProxyRequests Off #关闭正向代理
    DirectoryIndex index.php
    #反代
    ProxyPassMatch ^/(.*\.php)$  fcgi://192.168.42.151:9000/application/www/test/$1
    <Directory "/application/www/test">
        #Options None
        #使用符号链接
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>        
</VirtualHost>

8.添加hosts解析

vim /etc/hosts
#add
192.168.42.135 www.test.com

注意:因为我们此次试验是分开部署的,为了保持统一,我们需要将三台主机的hosts文件全部统一 别忘了推送网站目录哦

9.浏览器访问 www.test.com [ ok ]

10.安装phpmyadmin

cd /application/www/
wget -c  http://192.168.42.26/install_package/down/phpMyAdmin-4.0.10.20-all-languages.tar.gz
tar xvf phpMyAdmin-4.0.10.20-all-languages.tar.gz
ln -s phpMyAdmin-4.0.10.20-all-languages  phpmyadmin
cd phpmyadmin
cp config.sample.inc.php  config.inc.php
vim config.inc.php
#更改一下配置项,在随机码后面随便添加随机码
$cfg['blowfish_secret'] = 'a8b7c6dfs433'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['Servers'][$i]['host'] = 'mariadb'; #hosts文件有解析

注意:因为我们是将mariadb分开部署的,所以我们访问phpmyadmin是属于访问远程的数据库,需要有远程登录账号 因此我们需要在mariadb主机上创建远程用户

grant all privileges on *.* to 'srayban'@'192.168.42.%' identified by '123456' with grant option;
flush privileges ;

11.给phpmyadmin添加虚拟主机和hosts解析,最终的host文件如下

注意:别忘记了把hosts文件推送到其他两台机器上哦

********************hosts文件*****************************

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.42.150  www.test.com apache www.phpmyadmin.com
192.168.42.151  php-fpm
192.168.42.152  mariadb

********************phpmyadmin配置文件*****************************

vim  /etc/httpd/conf.d/phpmyadmin.conf

<VirtualHost *:80>
    ServerName www.phpmyadmin.com
    DocumentRoot /application/www/phpmyadmin
    ProxyRequests Off #关闭正向代理
    DirectoryIndex index.php
    #反代
    ProxyPassMatch ^/(.*\.php)$  fcgi://192.168.42.151:9000/application/www/phpmyadmin/$1
    <Directory "/application/www/phpmyadmin">
        #Options None
        #使用符号链接
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>        
</VirtualHost>

12.再次提醒

推送hosts文件到其他两台机器
scp -rp /etc/hosts root@192.168.42.151:/etc/
scp -rp /etc/hosts root@192.168.42.152:/etc/


推送application目录到php-fpm主机上
scp -rp /application root@192.168.42.151:/

13.重启apache,重启php-fpm

在浏览器访问www.phpmyadmin.com 就能访问以web界面的方式操作数据库了

原创文章,作者:srayban,如若转载,请注明出处:http://www.178linux.com/77414

(0)
sraybansrayban
上一篇 2017-06-03 14:17
下一篇 2017-06-03 15:15

相关推荐

  • 文件查找命令(find、locate)

    在文件系统上查找符合条件的文件: 实现工具:locate, find locate: 依赖于事先构建好的索引库; 系统自动实现(周期性任务); 手动更新数据库(updatedb); 工作特性: 查找速度快; 模糊查找; 非实时查找; locate [OPTION]… PATTERN… -b:只匹配路径中的基名; -c:统计出共有多少个符合条件的文件;…

    Linux干货 2016-11-06
  • LVS

    一 LVS工作原理 1. lvs-nat模型 lvs-nat:多目标的DNAT, 通过将请求报文中的目标地址和目标端口修改为挑选出的某RS的RIP和PORT 实现转发。 (1) RIP和DIP必须在同一IP网络,且应该使用私有地址,RS的网络要指向DIP(保证响应报文必须由VS); (2) 请求报文和响应报文都经由Director转发,较…

    Linux干货 2016-12-06
  • RAID级别及各个级别特性

    1、什么RAID      RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。 2、RAID的级别及各个级别的特性:     (1)RAID-0:无差错控制的条带化:   &nbs…

    Linux干货 2016-04-12
  • 第八周-Linux网络配置,软件安装,bash编程

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别 网桥:一种网络设备,负责网络桥接(network bridging)之用。桥接器将网络的多个网段在数据链路层(OSI模型第2层)连接起来(即桥接)。 集线器(Hub):是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。 二层交换机:工…

    Linux干货 2016-11-14
  • Linux 之LVM

    一 LVM 简介:     LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM的工作原理其…

    Linux干货 2016-03-01
  • 10月18日作业–hash,history

    1 生产环境发现一台服务器系统时间产生偏差,造成服务异常,请帮忙校正。 1、使用ntpdate对时间进行同步,然后hwclock -w;并再建立Crontab每小时进行一次时间同步。 2 生产有一个数据同步脚本需要执行很长时间,怎样做到无人值守,在管理工具退出的情况下,脚本依然能正常运行。 1、载光盘 2、进入/mnt/Packages 安装共享screen…

    Linux干货 2016-10-19