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