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
)