好久没玩过WordPress
了,最近同学搞了个技术网站,顺便想搭个博客,同学不太熟悉MarkDown
和HTML
,我目前的这些网站绝大部分是静态的页面,之前也用过WordPree
和Typecho
,用不习惯,昨天搭了一下,还是那些常见的问题,随手记录一下。
$$
\begin{pmatrix}
🍇 & 🍈 & 🍉 & 🍊 \\
🍋 & 🍌 & 🍍 & 🍎 \\
🍏 & 🍐 & 🍑 & 🍒 \\
🍓 & 🥝 & 🍅 & 😳
\end{pmatrix}
$$
安装LNMP环境
WordPress是使用PHP
语言开发的博客平台,对于.php
浏览器无法直接打开,这就需要服务器有PHP
的语言环境了,同时访客在站点的资料和信息会保存到数据库里面,在互联网中要访问到该站点还得用到http服务软件。
需要安装的软件:
- PHP环境(php)
- 数据库(Mysql)
- http服务软件(Nginx或Caddy)
P、M、N都有了,那L是指什么?L就是Linux啊😥️
安装LNMP环境,为了避免不必要的麻烦,这里我在 系统选择的是CentOS 7 主机信息Vultr
新开一台机房位于洛杉矶
的服务器:
等待系统安装好以后,我们就可以查看主机的详细信息了
有几项关键信息:
- 主机
IP
(也就是公网ip) - ROOT用户的密码
在连接主机之前,我们先来测试下访问主机的速度,打开Terminal
或着命令提示符
,使用如下命令:1
ping 207.246.108.54 #ping后面接你主机的ip地址
此处略过一些特殊问题,比如ping不通等等,与本教程无关,不参与讨论
下面就是连接我们的主机了,SSH
连接服务器,Windows
下面建议使用XShell
的家庭版(免费的),Unix/Linux
不需要额外安装软件,Android
的话建议使用Termux
安装openssh
- 在
Terminal
下面连接🔗️主机
1 | ssh root@207.246.108.54 #用法 ssh 用户名@ip地址 |

更改root密码
安装一些常用的软件和编译器
1 | sudo yum install -y git make curl wget vim nmap screen vim gcc |
由于使用源码编译安装,安装时间比较长,使用screen
开启一个session
这样即使退出终端,服务器的编译安装也会继续进行:1
screen -S install_lnmp #创建名为install_lnmp的session
这里使用一键安装脚本简化安装教程:1
2
3
4wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz
tar -xvf lnmp1.5.tar.gz
cd lnmp1.5
./install.sh
这时候你就可以断开与服务器的连接了,约莫1个小时左右的样子,就能安装好。
约莫过了50分钟了,我看看服务器编译安装好了没有。ssh连接服务器后:1
screen -r install_lnmp
当你看到下图显示的信息的时候就说明,我们的 安装完毕LNMP
已经安装好了
按下Ctrl + c
退出。
如果你已经安装好了PHP环境
和MySql数据库
的话,那么就可以跳过此部分
下载安装WordPress
- WordPress
1
2
3
4wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz #下载最新简体中文版
tar -xvf wordpress-4.9.4-zh_CN.tar.gz #解压
mkdir /home/wwwroot #在home目录下面创建一个网站的根目录,方便管理
mv wordpress /home/wwwroot/ #将博客网站的根目录一到wwwroot目录下
安装Caddy作为http服务软件
Q: 你为什么不用Nginx
或者Apache
这些老牌的http软件呢?
A: 主要是我懒,懒得配置这两个软件了,还有就是,caddy
还是有很多优势的,体积小,很方便的
Q: 我就要用Nginx
或许Apache
,你用的这个软件和我的软件会冲突的吧,一个端口只能有一个守护进程吧,那这个软件怎么工作呢?
A: 我只是搭着玩一玩,我配置下Caddy
不占用443和80这两个端口不就🐷️好了。
- 安装
Caddy
- 可以去官网下载二进制文件,不过
YUM
源里面有这个软件,直接通过源安装。
1 | sudo yum install -y caddy vim #vim等下要用到 |
接下来就是配置我们的caddy
了。首先我们切换到/home/wwwroot
目录下,新建一个配置文件的目录。1
2
3
4cd /home/wwwroot
mkdir caddy_config
cd caddy_config
vim Caddyfile #按下i插入字符
Caddyfile内容:1
2
3
4
5
6
7207.246.108.54:1018 {
root /home/wwwroot/wordpress
timeouts 10m
gzip
fastcgi / 127.0.0.1:9000 php
tls ourfor@foxmail.com #公网ip这一行不要
}
207.246.108.54
是你的公网ip- root
/home/wwwroot/wordpress
是我们网站根目录的路径,注意,wordpress下面一定是一些.php
的文件 1018
是你想打开的端口,如果有其他进程占用此端口,你更换一个就是了- tls
ourfor@foxmail.com
是你想申请SSL证书的邮箱,如果是公网ip,那么这一行就别填了
粘贴进Caddyfile后,按下ESC
,键入ZZ
保存退出
接下来,我们就可以来部署WordPress
了。
首先我们为WordPress
创建一个数据库,为方便管理我就起名为wordpress
.1
2
3mysql -u root -p #接下来会让你输入命令
create DATABASE wordpress; #注意有个分号,这是一条语句
exit #退出

创建数据库
接下来我们还要让PHP
监听9000
端口,这个9000
端口我们在caddy的配置文件里面有用到,区别你网站占用的端口。
首先我们来查找一下php-fpm
的配置文件:1
2find / -name "php-fpm.conf" #我这里是在/usr/local/php/etc/这个目录下面
vim /usr/local/php/etc/php-fpm.conf
光标移动到这一行1
listen = /tmp/php-cgi.sock
按下o
,在下面添加这一行:1
listen = 127.0.0.1:9000
同样按下ESC
后,使用大写的ZZ
保存退出。更改了配置文件,需要重启下php:1
systemctl restart php-fpm

重启php-fpm
接下来我们就得来打开http服务软件了。我们先来放行我们博客占用的端口,你关闭下防火墙也行。
- 关闭防火墙吧,这个简单😿️
1 | systemctl stop firewalld |
或者放行1018
,并添加出站规则:1
2systemctl start firewalld # 开启防火墙
firewall-cmd --add-port=1018/tcp --permanent # 永久打开1018端口
接下来,我们就要为这个端口添加服务,系统预先为一些端口配置了服务,我们复制一下,稍微改一改就行了。1
2cp /usr/lib/firewalld/services/https.xml /etc/firewalld/services/caddy.xml #caddy.xml这个名字随意
vim /etc/firewalld/services/caddy.xml
改成这个样子就行了:1
2
3
4
5
6<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Secure WEB (Caddy)</short>
<description>HTTPS is a modified HTTP used to serve Web pages when security is important. Examples are sites that require logins like stores or web mail. This option is not required for viewing pages locally or developing Web pages. You need the httpd package installed for this option to be useful.</description>
<port protocol="tcp" port="1018"/>
</service>
short
里面的名字自己随意,主要是给人看的port
是我们要的端口,我上面用的是1018
在防火墙中添加规则
1 | firewall-cmd --permanent --new-service-from-file=/etc/firewalld/services/caddy.xml --name=caddy #这样做,管理服务器更清晰、高效。name选项可选 |
更多更详细的用法,参阅官方文档
- 打开
caddy
1 | cd /home/wwwroot/caddy_config #进入我们为caddy配置的目录 |
不出意外,我们打开终端显示的网站,就能看到 WordPress 配置信息WordPress
的设置页面。
按照之前我们配置的填写就行了。
不出意外,它会来到这个页面。这是由于这个目录权限的问题,需要手动操作一下。
按下Ctrl + z
,暂停我们的caddy,来到博客的根目录下(即wordpress下面)。1
vim wp-config.php
按下i
插入,将提示的信息粘贴,保存退出(方法同上)。使用fg %1
来恢复我们的caddy。
到这里,你以为就成功了?
我们还得添加一个ftp
的账户,用来安装主题插件。使用之前的一键安装脚本下面的pureftpd.sh
来安装
1 | wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz |

目录最好填博客的根目录
更改一下wp-content
这个目录的权限,让WordPress
可以写入。1
chomd -R 777 wp-content #在wordpress目录下执行
最后就是用screen为caddy创建一个session
就可以断开和服务器的连接了。
或者也可以用nohup
和&
来忽略中断并在后台运行,例如:1
nohup caddy &
关于数据库的一些基本操作
- 更改
root
密码1
mysqladmin -uroot -p2320813747 password 'newpassword' #更改原密码为newpassword
如果没有安装mysqladmin
可以用sql
语句修改root密码:1
2
3
4use mysql; #选择mysql这个数据库
update user set password=password('new_password') where user='root';
flush privileges; #刷新特权等级
quit;
创建、删除和查看数据库
1
2
3
4
5mysql -uroot -p2320813747
mysql> create database wordpress; #创建名为wordpress的数据库
mysql> drop database wordpress; #删除名为wordpress的数据库
mysql> show databases; #显示已存在的数据库
mysql> exit; #退出备份和还原数据库
1
2mysqldump -hhostname -uroot -ppassword databasename | gzip > pathtosave.sql.gz #mysqldump -hlocalhost -uroot -p2320813747 wordpress | gzip > /root/wordpress.sql.gz
gunzip < pathtosave.sql.gz | mysql -uroot -ppassword databasename #gunzip < /root/wordpress.sql.gz | mysql -uroot -p2320813747 wordpress