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  [email protected]:/    即可,原理讲完了,我们来部署吧

在 [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 [email protected]:/etc/
scp -rp /etc/hosts [email protected]:/etc/


推送application目录到php-fpm主机上
scp -rp /application [email protected]:/

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

相关推荐

  • awk用法二

      3、awk的printf命令     格式:printf format, item1 item2…     要点:      (1) 要指定format;      (2) 输出时不会自动换行,如需换行则…

    Linux干货 2015-12-24
  • 带你走进PI的世界-Raspbian Pi上实现LAMP

     初识   Raspbian PI                   前段时间,出于兴趣,入手一个树莓派(Raspbian PI…

    Linux干货 2016-01-05
  • Linux网络

    网络概念 OSI模型网络设备TCP/IPIP地址   什么是网络 资源共享的功能和优点数据和应用程序资源网络存储备份设备 常见的网络物理组件 网络应用程序Web 浏览器(Chrome、IE、Firefox等)即时消息(QQ、微信、钉钉等)电子邮件(Outlook、foxmail 等)协作(视频会议、VNC、Netmeeting、WebEx 等)we…

    Linux干货 2017-08-19
  • 马哥教育网络班22期-第2周博客作业2

    2、bash的工作特性之命令状态返回值和命令展开所涉及的内容及其示例演示 bash的基础特性:命令的执行状态结果   命令执行的状态结果:   bash通过状态返回值来输出此结果:     成功:0     失败:1-255  &…

    Linux干货 2016-08-22
  • 马哥教育网络班21期+第2周课程练习

    一、Linux文件管理类命令汇总 1、文件的复制命令:cp 复制命令:cp     cp [OPTION]… [-T] SOURCE DEST     cp [OPTION]… SOURCE… DI…

    Linux干货 2016-07-29
  • sed行编辑器

    Linux文本处理三剑客之一:sed(Stream Editor)流编辑器 sed:     将指定的文本文件内容逐行读取至sed的临时内存空间当中,称为"模式空间",而后逐行查看是否被sed的地址定界所匹配到,如果匹配,则执行相应的编辑操作,否则,默认将模式空间中的内容打印至标准输出  …

    Linux干货 2016-08-15