共计 2514 个字符,预计需要花费 7 分钟才能阅读完成。
前言:
我们已经实现过在 lamp 架构上部署 wordpress 博客系统,httpd 服务本身支持模块化和 fastcgi 两种形式连接到 php 应用(其他方式博主没用过就不提了)。而 nginx 作为 web 服务器的话就只能通过 fastcgi 连接到 php 应用了。当然,nginx 还有一个常用的用处就是作为反向代理,这是后话,以后在提。
正文:
当 web 服务承载的用户数量越来越大时,如果我们依然把整个 lnmp 都部署在一台主机上,肯定是有问题的,所以今天我们直接来实现把 nginx,fpm 和 MySQL 分别部署在不同的服务器上。我们的环境是有三台 CentOS7 主机,172.16.53.100 部署 nginx 服务,172.16.53.101 部署 fpm,172.16.53.102 部署 mysql。我们现在三个主机上安装相应的程序。
#172.16.53.100
yum install nginx -y
vim /etc/nginx/nginx.conf 把默认配置先注释掉~ 不然影响测试。
# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# root /var/nginx;
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
vim /etc/nginx/ 创建一个单独的配置文件
server {
listen 80; 监听所有接口的 80 端口
server_name
location / {
root /var/nginx/phpMyAdmin; 静态文件存放的位置
index index.php; 自动加载 index.php 的主页文件
}
location ~ \.php$ {设置动态 php 文件去 172.16.53.101 找
fastcgi_pass 172.16.53.101:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/nginx/phpMyAdmin/$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl start nginx
iptable -vnL 清空防火墙规则
#172.16.53.101
yum install php-fpm php php-mysql php-mbstring -y
分别是 fastcgi 模块,php 环境 连接 mysql 的模块 中文支持模块
vim /etc/php-fpm.d/
listen 0.0.0.0:9000 监听所有端口
listen.allowed_clients = 172.16.53.100 运行 100 主机的访问
mkdir /var/nginx 我们在此目录下放 php 程序,请自行下载 phpMyAdmin 程序
cd /var/nginx
unzip phpMyAdmin-4.4.14.1-all-languages.zip 解压
mv phpMyAdmin-4.4.14.1-all-languages phpMyAdmin 重命名
cp config.sample.inc.php config.inc.php 以默认的配置文件得到我们需要的配置文件
vim config.inc.php 修改配置文件,只用修改一条。
$cfg[‘Servers’][$i][‘host’] = ‘172.16.53.102’; 要管理的数据库 ip 地址。
systemctl start php-fpm
iptable -vnL 清空防火墙规则
#172.16.53.102
yum install mariadb-server
systemctl start mariadb
mysql 用 mysql 命令连接到本地数据库
mysql>grant all on *.* to ‘root’@’172.16.%.%’ identified by ‘1234’; 设置允许同网段的 ip,连接到数据库。
iptable -vnL 清空防火墙规则
配置的过程中遇到最多的问题就是防火墙。。。。
dang 所有都配置好之后,首先我们要测试能不能显示 phpMyAdmin 的页面,然后测试能不能连接到数据库。如果是 50x 错误,应该是 location ~ \.php 这个没配置好,或者 php-fpm 端 iptables 规则限制访问,如果是 404 错误,估计是 php-fpm 端的目录有问题之类的。
像我们的配置是吧静态文件和 php 文件放在两个服务器上,这样在某些 php 程序上还是有问题的。比如博主在安装 wordpress 的时候,当我们安装的时候,或者上传静态文件,比如图片的时候会把这些静态资源传到 php-fpm 所在的服务器。因此当我们需要访问静态资源而 nginx 服务器上没有的时候,就会遇到许多问题。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-07/145440.htm