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.www58058.com/77414

(0)
sraybansrayban
上一篇 2017-06-03
下一篇 2017-06-03

相關推薦

  • 優云實踐:巧用Salt,實現CMDB配置自動發現

    隨著互聯網+新形勢的發展,越來越多的企業步入雙態(穩敏雙態)IT時代,信息化環境越來越復雜,既有IOE三層架構,也有VCE、Openstack等云虛擬化架構和互聯網化的分布式大數據架構。所以,企業急需建立一套合適的配置管理庫(CMDB),像人類“大腦”一樣統一存儲從基礎架構到業務應用各層面的配置信息,以便協調“身體”(運維系統)各部分完成復雜的運維工作。 C…

    系統運維 2016-07-26
  • 淺談linux基礎知識(二)

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 文件管理工具:cp,mv,rm cp命令:copy 源文件,目標文件 單源復制:cp[OPTION]… [-T] SOURCE DEST 多源復制: cp[OPTION]… SOURCE… DIRECTORY cp[OPT…

    Linux干貨 2016-10-12
  • N25期第八周作業

    1.請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別 主要功能: 網橋是一個局域網與另一個局域網之間建立連接的橋梁,屬于數據鏈路層的一種設備。 集線器是可以將一些機器連接起來組成一個局域網的設備。 二層交換機是工作于OSI模型的第2層(數據鏈路層)的設備,作用和集線器類似。 三層交換機就是具有部分路由器功能的二層交換機。 路由器是互聯…

    Linux干貨 2017-03-08
  • Linux添加swap交換分區

    添加swap交換分區 SWAP即交換分區是一種類似于Windows系統虛擬內存的功能,將一部分硬盤空間虛擬成內存來使用,從而解決內存容量不足的情況,因為SWAP畢竟是用硬盤資源虛擬的,所以速度上比真實物理內存要慢很多,一般只有當真實物理內存耗盡時才會調用SWAP。 1、創建一個分區,看上篇文章,別著急w保存退出 修改分區的類型輸入t: Comman…

    Linux干貨 2016-09-07
  • Linux第三周總結

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ~]# who | cut -d ” -f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。 ~]# who|tail -1 3、取出當前系統上被用戶當作其默認shell的最多的那個shell ~]# cut -d’:’…

    2017-07-16
  • N22-第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     首先用who命令查看所有已登錄用戶信息,然后用cut命令取出用戶名,再用sort -u對用戶名排序并刪除重復的用戶名      2、取出最后登錄到當前系統的用戶的相關信息。  &n…

    Linux干貨 2016-09-05
欧美性久久久久