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

简介:

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

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


node1: 192.168.2.11  nginx+mysql

node2: 192.168.2.12  php-fpm

其中node1node2前期都安装了lnmp一键安装包。

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

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

 

node1上的MySQL的配置:

安装过程略过,说下授权的配置

1
2
3
>create database wp;
>grant all on wp.* to  'wp' @ '192.168.2.%'  identified by  '123456' ;
>flush privileges;

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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的配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[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(被网上一个坑爹的教程害的)

 

 

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

node2上通过scpnode1上的wordpress网站文件拷贝过来

1
2
# scp -rproot@192.168.2.11:/home/wwwroot/default  /home/wwwroot/default
# chown  www.www /home/wwwroot/default


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

 

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


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




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










本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1794937,如需转载请自行联系原作者
目录
相关文章
|
21小时前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
21小时前
|
网络协议 应用服务中间件 Linux
在Redhat 9部署nginx服务
Nginx是一个高性能、开源的HTTP和反向代理服务器,以其异步非阻塞模型处理高并发,并具有轻量级、高可靠性、良好扩展性和热部署特性。在Redhat 9.2上安装nginx-1.24.0涉及安装依赖、下载解压、源码编译、配置环境变量及启动服务。安装步骤包括:yum安装依赖包,下载解压Nginx,运行configure脚本预编译,make && make install编译安装,然后赋权、配置环境变量,关闭防火墙和SELinux,最后启动Nginx并进行浏览器测试。
476 3
|
21小时前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
44 4
|
21小时前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
155 0
|
21小时前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
24 0
|
21小时前
|
JavaScript 应用服务中间件 nginx
【报错】nginx部署项目后Echarts折线图无法展示
在Vue3+TS+Arco项目中,打包后使用Nginx部署的Echarts折线图显示异常,报`Cannot read properties of undefined(reading 'setOption')`错误。问题源于在定义div时使用了Vue2的`$refs`语法,导致DOM元素无法正确初始化Echarts。解决方法有两种:1) 不推荐使用`document.getElementById`获取DOM并初始化Echarts;2) 推荐在Vue3中通过`ref`获取DOM,在`onMounted`中使用`echarts.init`并借助`nextTick`异步绘制数据。
|
21小时前
|
负载均衡 算法 前端开发
Nginx笔记
Nginx笔记
15 1
|
21小时前
|
应用服务中间件 nginx
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
10 0
|
21小时前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
53 3
|
21小时前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
260 0