wordpress从apache迁移到nginx
目录
一、安装nginx
二、配置文件准备
2.1、进程运行用户
2.2、虚拟主机
2.3、重定向
三、迁移
庚子鼠年最后几天,贫僧发现了内存不足的问题,并在Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题一文中阐述了解决方案。最近和几位开发朋友聊天,发现如果直接使用nginx,就不存在这个内存不足的问题。所以,研究了几天,决定从apache迁移到nginx。
一、安装nginx
在nginx的官网,有编译好的nginx版本,RHEL/CentOS发行版yum源地址https://nginx.org/en/linux_packages.html#RHEL-CentOS ,配置好了以后就可以安装了,目前的稳定版本是nginx-1.18.0。
To set up the yum repository, create the file named
/etc/yum.repos.d/nginx.repo
with the following contents:[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true[nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
二、配置文件准备
2.1、进程运行用户
nginx默认的进程运行用户是nginx。由于本站从apache迁移过来,之前文件系统所属用户、所属组是apache:apache。为了保证文件读写顺利,不引起不必要的麻烦,修改/etc/nginx/nginx.conf文件,用user指令指定进程运行用户。
Syntax: user
user
[group
];
2.2、虚拟主机
根据官网https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/ 的描述应当这样配置wordpress建站。
首先,要安装php-fpm服务,php-fpm默认在127.0.0.1:9000端口提供服务,我们为php设置一个命名的upstream来抽象后端,这样做将来更改端口或添加更多的后端会很容易。
之后,我们为stackoperator.top设置虚拟主机配置。模板很全面,我们只需要修改三个部分即可。server_name来指定虚拟主机域名。root指定虚拟主机的文件路径。ssl相关选项指定证书、私钥、加密算法等,具体请参考各云服务商的建议值。
# Upstream to abstract backend connection(s) for php
upstream php {#server unix:/tmp/php-cgi.socket;server 127.0.0.1:9000;
}server {## https is working on this portlisten 443 ssl;## Your website name goes here.server_name example.org www.example.org;## Your only path reference.root /your/website/root/absolute/path;## This should be in your http block and if it is, it's not needed here.index index.php;ssl_certificate /absolute/path/to/your/certificate.crt;ssl_certificate_key /absolute/path/to/your/certificate.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location = /favicon.ico {log_not_found off;access_log off;}location = /robots.txt {allow all;location = /robots.txt {allow all;log_not_found off;access_log off;}location / {# This is cool because no php is touched for static content.# include the "?$args" part so non-default permalinks doesn't break when using query stringtry_files $uri $uri/ /index.php?$args;}location ~ \.php$ {#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.iniinclude fastcgi_params;fastcgi_intercept_errors on;fastcgi_pass php;#The following parameter can be also included in fastcgi_params filefastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {expires max;log_not_found off;}
}
2.3、重定向
根据官网https://nginx.org/en/docs/http/converting_rewrite_rules.html ,应当配置一个监听80端口的http虚拟主机,用return 301进行重定向保证https。
This is a wrong, cumbersome, and ineffective way. The right way is to define a separate server for
example.org
:server {listen 80;server_name example.org;return 301 https://www.example.org$request_uri; }server {listen 80;server_name www.example.org;return 301 https://www.example.org$request_uri; }
因此stackoperator.top的配置是酱紫的。
server {## rewrite http to httpslisten 80;server_name stackoperator.top www.stackoperator.top;return 301 https://www.stackoperator.top$request_uri;
}
三、迁移
关闭apache服务,禁止开机启动。设置nginx开机启动,启动nginx服务。不要同时启动,否则端口冲突就好玩了。
systemctl stop httpd
systemctl disable httpd
systemctl enable nginx
systemctl start nginx
相关文章:

zabbix4.0搭建(基于CentOS6.8)
环境服务端:188.188.3.241,系统:centos6.8,mysql:5.7.3,php:5.4.9,nginx:1.12.0一、nginx编译安装NGINX_VERSION1.12.0yum -y install pcre-devel openssl-develcd /usr/…

[Ahoi2008]Meet 紧急集合
1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec Memory Limit: 162 MBhttp://www.lydsy.com/JudgeOnline/problem.php?id1787Description Input Output Sample Input 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 2 4 4 6 6 6 Sample Output 5 2 2 5 4 1 6 0 HINT S…

C++ 回调函数
函数指针 函数指针是一种指针,具体来说是:指向函数入口地址的指针。 #include <iostream> using namespace std; double function_t(int val) {return val; } int main() {double (*ptr)(int); // 创建一个函数指针,返回值为doubl…

想知道什么是“成员变量”吗?
成员变量是直接定义在“类”中的量; 特点:成员变量有默认值,具体请看表格 数据类型默认值整型0浮点型0.0char’ ’booleanfalse其他类型null 成员变量的作用就是可以详细描述对象信息 我们来举个例子: public class UserInfo{int age;doubl…

Linux09-网络配置
目录 一、网络配置基础 1.1、网络接口 1.2、设置主机名 二、nmcli配置网络 2.1、配置固定的IP地址等 2.2、连接wifi 三、链路聚合等 一、网络配置基础 1.1、网络接口 先来对比一下RHEL6、RHEL7关于网络接口上的一些差别。 RHEL6 RHEL7 配置文件位置 /etc/sysconfig…

VScode配置ROS环境
创建一个文件夹 使用catkin_make编译工作空间的根目录 使用VScode打开 VScode 中编译 ros 快捷键 ctrl shift B 调用编译,选择:catkin_make:build 可以点击配置(右边的小齿轮),修改.vscode/tasks.json 文件 { // 有关 tasks.j…

从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...
注意,64位系统,用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统:使用的是64位的Windows Server 2008 解决办法: 这是由于该计算机上没有安装Microsoft Access数据库引擎组件,该组件…

天兔(Lepus)监控系统慢查询分析平台安装配置
转http://suifu.blog.51cto.com/9167728/1770672 被监控端要安装pt工具 1234[rootHE1~]## yum -y install perl-IO-Socket-SSL[rootHE1~]## yum -y install perl-DBI[rootHE1~]## yum -y install perl-DBD-MySQL[rootHE1~]## yum -y install perl-Time-HiRes[rootHE1~]# tar xv…

五分钟让你搞懂什么是“构造方法”
构造方法的形式:类名([参数列表]){} 特点:- 构造方法没有返回值,就算void也不能有,这点与Java方法(或叫函数)不一样;- 一个类中默认无参构造方法,但是当定义了一个有参构造方法时,则默认无参构造…

Linux10-归档、系统间复制文件
目录 一、tar命令 二、scp、sftp命令 三、rsync命令 一、tar命令 tar命令可以归档文件、目录,提取创建的归档文件,同时进行压缩解压缩。使用tar选项时不需要加-,下面是常用的tar选项。 c,创建一个存档。x,提取一个…

pattern
常用的正则表达式 0-9 pattern"[0-9]*" 信用卡 [0-9]{13,16} 银联卡 ^62[0-5]\d{13,16}$ Visa: ^4[0-9]{12}(?:[0-9]{3})?$ 万事达:^5[1-5][0-9]{14}$ QQ号码: [1-9][0-9]{4,14} 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5…

VScode配置CMAKE文件
创建一个vscode文件 记得一定要创建一个build文件夹,因为cmake编译过程中产生的中间文件会放到build文件夹中。 打开VScode 配置文件 launch.json {"version": "0.2.0","configurations": [{"name": "(gdb) Launc…

三分钟了解“Java重写”
要了解“Java重写”,首先要知道“继承”,继承是一种基于已有类(父类)创建新类(子类)的一种方式 下面的Son类继承了Father类 public class Father(){public void eat(String name,int age){System.out.prin…

2017 .NET 開發者須知
筆記-Scott Hanselman 的 2017 .NET 開發者須知 转载http://blog.darkthread.net/post-2017-01-16-dotnet-dev-should-know-2017.aspx Scott Hanselman 前兩天有篇文章-What .NET Developers ought to know to start in 2017,我的工作&#x…

Linux11-RPM软件包和YUM源
目录 一、rpm 二、yum 一、rpm 红帽开发了RPM软件包管理器,RPMRedhat Package Manager。RPM软件包名的格式为<name>-<version>-<release>.<arch>.rpm。比如,httpd-tools-2.4.6-7.el7.x86_64.rpm,其中namehttpd-to…

SQL Server 与 ORACLE 的区别
sql server 与 oracle的区别: DBMS 数据库管理系统 1.数据类型不同。 sql server 的数据类型:int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima, float,bit…… oracle 的数据类型:number(…

php如何定时执行任务
PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法,下面就让我们来看…

Java的多态(详尽版)
父类类型(比如Mammal)的变量指向子类(比如Cat)创建的对象,使用该变量调用父类中一个*被子类重写*的方法(比如move方法), 则父类中的方法呈现出不同的行为特征,这就是多态…

C++ memset
memset的主要功能是对一片内存进行赋值(逐字节进行) 包含在头文件#include < cstring >中。 函数模板 void *memset(void *s, int v, size_t n); s:数组名,或指向某一片内存的指针名, v:要填充的值…

Linux12-文件系统基础
目录 一、识别文件系统和设备 1.1、分区 1.2、逻辑卷 二、挂载卸载文件系统命令mount、umount、blkid、lsof 2.1、挂载 2.2、卸载 三、检查文件系统命令df、du 四、制作文件链接命令ln 4.1、硬链接 4.2、软连接 五、查找文件命令locate、find 一、识别文件系统和设备…

C语言------运算符和表达式
1. 自动类型转换是由计算机自动完成的,当由低级别的向高级别的转换时,不会报警,但是当高级别的向低级别的转换时,会发出告警信息,信息意思就是提示会有部分数据丢失的可能。 2. 强制类型转换是通过“(数据类…

String类常用方法(看一眼就懂)
public class Test{public static void main(String[] args){String name " T o m ";System.out.println(name.length()); //输入字符的长度,(空格也占一个字节)System.out.println(name.equals(" T o m ")); //判断连…
1.2.2一个数可以有多少种用连续素数之和表示
#include <iostream> using namespace std; const int maxp2000,n10000; int prime[maxp],total0; bool isprime(int k)//bool函数用来求素数 {for(int i0;i<total;i)if(k%prime[i]0)//判断素数的一种方法(用这个数对数组当中所有的 素数 进行取余…

C++查找算法(更新中)
C的查找分为静态查找与动态查找。 静态查找:只是在查找表中判断是否有这一个元素,取出这个元素的属性。 动态查找:在查找过程中,会对查找表做出修改。 比如插入、删除。 静态查找 静态查找包括:顺序查找、二分查找、…

编译Linux Kernel(linux-4.19.178)并制作成rpm文件
目录 一、安装依赖项 二、下载、解压缩、制作.config文件 三、编译内核及打包 四、升级内核 首次尝试编译Linux内核,记录过程,提供Linux Kernel(linux-4.19.178)下载https://download.csdn.net/download/qpeity/15637656。 一、安装依赖项 安装依赖…

2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水
2016 Multi-University Training Contest 3 A - Sqrt Bo 题意:给一个数 n,问n要多少次平方后化为1,如果超过5次输出"TAT"。 tags:SB题,5次内平方的,即小于2*2*4*16*256*65536 。然后0、1特判。 #…

BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)
题意:就是在n*m的格子中放“炮”(中国象棋中的棋子)问有多少种放法,使得没有任意的两个炮相互攻击 思路:我们很容易的得到一列或者一行中最多放下两个炮(我也只能得到这些了,满脑子状压…

Java中父类构造方法对子类构造方法的影响(不是一句话可以说清的)
推荐的阅读顺序是:先看Test类,再根据提示看父类和子类 让我们通过代码来了解一下:创建一个父类: public class Father{public Father(){super();//默认调用Object构造方法(Object是所有类的父类)System.out.println("父类构…

ORB_SLAM2概述
追踪线程 灰度化处理。构建当前帧(提取每幅图像的特征点,并分配到网格中,这会极大的方便某一领域内的特征点的查找与匹配)。单目相机初始化操作:通过特征点匹配,使用RANSACDLC计算H矩阵,并根据…

源同步方法与注意事项
2021年的信息安全攻防演练比2020年来的稍早了一些,还是一样的配方,还是一样的味道。检查单位的YUM源,发现没有CentOS 7.9的,排查后发现原来是中科大的rsync同步地址放生了变化,导致源同步失败。改一下地址就好…