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