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

相关推荐

  • Linux发行版介绍

    一,Linux是什么?      Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统…

    2016-10-29
  • Linux初认识

    1、计算机的五大部件 CUP: CUP中包含了两大部件分别是运算器、控制器。其中运算器主要是进行数学运算、逻辑运算等各种运算的。除了两大部件以外CUP内部还有寄存器、缓存,它们是提升CUP性能的辅助性工具。 存储器: 内存RAM(Random Access Memory)。 输入设备Input: 输入设备用来下指令,提供数据等。输入设备有键盘,鼠标,麦克风等…

    Linux干货 2017-07-09
  • linux一周学习总结

          对于linux,之前也完全没有接触过,完全零基础小白。来到马哥以后,进入学习也有一周时间 ,一周里老师带我们学习了很多指令,下面,我就自己的理解和老师讲授的内容对linux中的一些指令做一个简单的小总结。 一、关于SHELL Shell     查询当前系统使用了哪个shell   &n…

    2017-07-15
  • 群集简介和LVS_nat模式配置

    群集简介: 群集(或集群)和称呼来自于英文单词cluster,表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。 根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋,但无论哪种群集,都至少包括两台节点服务器。而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集…

    Linux干货 2017-02-13
  • 8-5作业

    4、取本机ip地址 ifconfig | grep -o "1[0-9]\+\.[0-9]\+\.[0-9]\+\.[1-2][0-5][0-4]" 5、取各分区利用率的数值 df | grep "/dev/sda"|tr -s ' ' |cut -d" " -f5 |tr -d…

    Linux干货 2016-08-10
  • 权限(用户、特殊、ACL)

    root权限(id=0) root无论在什么情况下都有rw权限,但是是否拥有x权限,要分情况: 第一,文件所有者和所属组都无x权限,root也无x权限; 第二,文件所有者和所属组二者任何一个有x权限,root就有x权限。 用户得到的权限 匹配顺序:文件所有者——文件所属组——其他人(从左到右) 用户访问文件,一旦按次序匹配成功,其获得的权限就是匹配选项所对应…

    Linux干货 2017-05-30