Centos 7 搭建 WordPress
环境准备
系统 CentOS 7.9,本次采用 LNMP 搭建 (Linux + Nginx + Mysql + Php)
我之前使用的是 OneinStack 自动安装的 LNMP 环境,但后来发现该工具存在后门风险。为了确保系统的安全性和稳定性,建议大家自行通过百度或其他可靠渠道手动安装 LNMP 环境。
创建数据库
登录数据库
|  |  | 
创建名字为 wordpress 数据库
|  |  | 
创建用户,用户名尽量避免直接用 root
- 用户名:admin
- 密码:admin123
|  |  | 
给新用户授权所有的 wordpress 库中的表
|  |  | 
刷新权限
|  |  | 
退出 mysql
|  |  | 
关闭防火墙
|  |  | 
安装 WordPress
解压压缩包
|  |  | 
重命名为 wordpress
|  |  | 
移动 wordpress 文件夹到 nginx 目录下
|  |  | 
修改 nginx.conf 文件,将 root 改为 html/wordpress,这样前端在访问时,输入的地址是:IP:端口,而不是 IP:端口/wordpress

图1)重新加载 nginx
|  |  | 
启动 nginx 服务
|  |  | 
设置网站目录可写的权限
|  |  | 
输入网址 http://ip/wp-admin/setup-config.php 进行在线初始化
后台登陆地址:http://ip/wp-admin
问题及解决
无法上传主题
发现无法上传主题,需要输入 FTP,这一般是用户组的问题,在 ngnix.conf 中第一行查看用户组名,发现用户组是 www www,而 wordpress 文件夹的用户组为 root,那我们就将 wordpress 文件夹的用户组改为 www www
|  |  | 
通过域名访问
目前是通过 ip 访问的,修改 nginx.conf 文件,通过域名访问

图2)又发现设置域名后,只有访问首页地址栏显示的是 域名,访问其它页面地址栏显示的仍是 ip,网上的方案都是在 设置-常规 中修改 WordPress地址 和 站点地址,我采用这种方法后,发现虽然访问任何页面,它的地址栏显示的都是域名,但是页面的样式加载不出来,这是因为页面样式仍是通过 ip 获取的

图3)我的做法是 WordPress地址 和 站点地址 不要修改
在当前使用的主题目录下 /usr/local/nginx/html/wordpress/wp-content/themes/,找到 funtions.php 文件,添加下列代码
|  |  | 
然后,再次访问后台会发现 WordPress地址 和 站点地址 自己变了,变成了 http://piliqiu.com,此时访问任何页面地址栏显示的都是域名,并且样式也可以加载出来了
伪静态
在 WordPress 的后台,进行以下设置

图4)在 nginx.conf 文件中,添加 location / {} 中的内容,实现伪静态

图5)|  |  | 
注意:添加完伪静态规则后,记得要执行下面的代码,重新加载 nginx 配置
|  |  | 
防盗链
为了防止网站上的图片资源被引用,增加服务器的负担,加入防盗链,在 nginx.conf 文件中配置
注意: if 和 ( 之间是有空格的,不加空格报错 unknown directive 'if($invalid_referer...119,记得加空格

图6)|  |  | 
在对方在新的标签页打开网站上的图片时,让防盗链返回一个错误的页面 401.html

图7)我们需要在 root 后面指定 401.html 所在的位置

图8)401.html 需要依靠其他的 css、js 文件,我们在 401.html 中指定
我们在 nginx.conf 文件中,root 后是这样写的:root html/wordpress,所以,默认是从 html/wordpress 这个层级开始找的,所以,js、css 的位置从这层目录开始

图9)
图10)
图11)
 piliqiu
 piliqiu