独立部署 php,nginx+php-fpm独立节点的部署wordpress笔记

本文记录了一次尝试将Nginx和PHP-FPM分开部署在两台不同服务器上的过程,遇到502错误并成功解决的经验。主要步骤包括MySQL授权,Nginx和PHP-FPM的配置调整,特别是Nginx的fastcgi_params配置以及PHP-FPM的listen.allowed_clients设置。此外,还强调了文件权限和用户ID的一致性对于避免访问错误的重要性。
摘要由CSDN通过智能技术生成

以前都是用lnmp一键安装的lnmp环境。

今天同学说他分开部署nginx+php-fpm出现了问题,总是报502,正好我也没试验过,于是自己也做了一遍,也遇到些问题,记下来以备以后用到。

node1: 192.168.2.11  nginx+mysql

node2: 192.168.2.12  php-fpm

其中node1和node2前期都安装了lnmp一键安装包。

因此,安装过程就不描述了。

直接开始修改参数,操作如下。

node1上的MySQL的配置:

安装过程略过,说下授权的配置>create database wp;

>grant all on wp.* to 'wp'@'192.168.2.%' identified by '123456';

>flush privileges;

node1上的nginx的配置文件如下:server

{

listen 80 default_server;

server_name 192.168.2.11;

index index.html index.htm index.php;

root /home/wwwroot/default;

#error_page  404   /404.html;

location ~\.php$ {

root /home/wwwroot/default;

fastcgi_pass 192.168.2.12:9000;

fastcgi_index index.php;

includefastcgi.conf;   注意这里我没有用fastcgi_params,因为fastcgi_params里面缺少一行文件

}

location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      30d;

}

location ~ .*\.(js|css)?$

{

expires      12h;

}

location ~ /\.

{

deny all;

}

access_log /home/wwwlogs/access.log  access;

}

另外,fastcgi.conf内容如下:fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;   注意这行,fastcgi_param比fastcgi.conf就是缺少了这行

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;

#PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

node2上的php-fpm的配置文件如下:[global]

pid= /usr/local/php/var/run/php-fpm.pid

error_log= /usr/local/php/var/log/php-fpm.log

log_level= notice

[www]

listen = 192.168.2.12:9000

listen.backlog= -1

listen.allowed_clients = 192.168.2.11   如果注释掉这行就是表示允许全部IP连接到php-fpm

listen.owner= www

listen.group= www

listen.mode= 0666

user= www

group= www

pm= dynamic

pm.max_children= 10

pm.start_servers= 2

pm.min_spare_servers= 1

pm.max_spare_servers= 6

pm.max_requests = 1000       这个参数设置太小的话,可能会引起间歇性502错误

request_terminate_timeout= 100

request_slowlog_timeout= 0

slowlog= var/log/slow.log

朋友网站报502,就是因为上面的listen.allowed_clients参数被他设置成了any(被网上一个坑爹的教程害的)

此外,还要在node1和node2上部署上相同的网站源文件。

在node2上通过scp将node1上的wordpress网站文件拷贝过来# scp -rproot@192.168.2.11:/home/wwwroot/default  /home/wwwroot/default

# chown  www.www /home/wwwroot/default

要注意的是:node1的运行nginx的用户id在node2上也要存在,并且id还要相同,否则可能访问时候报错。

在node1启动nginx,在node2上启动php-fpm。

在浏览器访问http://192.168.2.11即可进入wordpress的安装界面。输入数据库的相关信息即可

这里没有考虑文件(及图片)的存储,实际生产环境中,应该使用共享存储NFS或者分布式存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值