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,如需转载请自行联系原作者
目录
相关文章
|
编译器 Linux PHP
【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
148 1
|
10月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
403 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
9月前
|
运维 数据可视化 关系型数据库
使用 Websoft9 运维面板部署和维护 WordPress 到底有多简单?
如何实现 WordPress 极速部署?Websoft9 通过应用商店一键安装与可视化运维管理,10 分钟完成零门槛上线。
328 1
|
5月前
|
小程序 安全 关系型数据库
专业打造一款圈子源码软件系统 / 后端 PHP 搭建部署一样实现利益化
本教程详解基于PHP后端与Uni-app的小程序开发全流程,涵盖技术选型、环境搭建、源码导入、接口对接及功能实现。采用Laravel/Symfony框架,结合MySQL/PostgreSQL数据库,使用WebSocket实现实时通信,并集成IM SDK实现音视频聊天。前端使用Uni-app开发,支持跨平台运行。教程包含完整部署流程与安全优化方案,助力快速搭建高性能、安全稳定的小程序系统。
445 5
|
数据可视化 NoSQL 开发者
国内免费高效部署WordPress方案探索之Websoft9多应用托管实践
在数字化普及的当下,WordPress 成为众多开发者和企业的建站首选。然而国内缺乏高效免费的部署方案。本文对比主流平台后推荐 **Websoft9**:其具备一键部署、多应用托管、性能优越、技术体系完善等优势,支持 WordPress 与其他系统的集成,适配阿里云、华为云等主流平台,是当前最值得尝试的开源建站方案之一。
184 0
国内免费高效部署WordPress方案探索之Websoft9多应用托管实践
|
8月前
|
缓存 安全 应用服务中间件
宝塔部署 WordPress 太繁琐 那就用 Websoft9 一键部署 WordPress
随着 WordPress 成为最受欢迎的建站平台之一,传统通过宝塔面板部署的方式因步骤繁琐、手动干预多而显得效率低下。本文介绍 Websoft9 一键部署方案,利用容器化技术快速搭建 WordPress,内置 Nginx、PHP-FPM、MariaDB 和 Redis,集成安全组件如 ModSecurity-WAF 和 Fail2ban,支持自动 SSL 和性能优化功能。相比宝塔面板,Websoft9 提供更简便、稳定且安全的部署体验,适合希望高效上线 WordPress 的用户。
|
10月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
205 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
关系型数据库 MySQL 应用服务中间件
测评部署和管理 WordPress 最方便的面板
本文介绍了如何使用Websoft9面板轻松搭建WordPress网站,相比宝塔和1Panel,Websoft9简化了Nginx和MySQL的配置步骤,实现了快速一键部署。用户只需在应用商店中搜索WordPress,选择版本和端口后等待几分钟即可完成安装,随后通过提供的链接进入WordPress界面,轻松启动个人网站。