安装配置WordPress

好久没玩过WordPress了,最近同学搞了个技术网站,顺便想搭个博客,同学不太熟悉MarkDownHTML,我目前的这些网站绝大部分是静态的页面,之前也用过WordPreeTypecho,用不习惯,昨天搭了一下,还是那些常见的问题,随手记录一下。

$$
\begin{pmatrix}
🍇 & 🍈 & 🍉 & 🍊 \
🍋 & 🍌 & 🍍 & 🍎 \
🍏 & 🍐 & 🍑 & 🍒 \
🍓 & 🥝 & 🍅 & 😳
\end{pmatrix}
$$

安装LNMP环境

WordPress是使用PHP语言开发的博客平台,对于.php浏览器无法直接打开,这就需要服务器有PHP的语言环境了,同时访客在站点的资料和信息会保存到数据库里面,在互联网中要访问到该站点还得用到http服务软件。

需要安装的软件:

  • PHP环境(php)
  • 数据库(Mysql)
  • http服务软件(Nginx或Caddy)

P、M、N都有了,那L是指什么?L就是Linux啊😥️

安装LNMP环境,为了避免不必要的麻烦,这里我在Vultr新开一台机房位于洛杉矶的服务器:
系统选择的是CentOS 7
等待系统安装好以后,我们就可以查看主机的详细信息了
主机信息
有几项关键信息:
- 主机IP(也就是公网ip)
- ROOT用户的密码
在连接主机之前,我们先来测试下访问主机的速度,打开Terminal或着命令提示符,使用如下命令:
1
ping 207.246.108.54 #ping后面接你主机的ip地址

此处略过一些特殊问题,比如ping不通等等,与本教程无关,不参与讨论

下面就是连接我们的主机了,SSH连接服务器,Windows下面建议使用XShell的家庭版(免费的),Unix/Linux不需要额外安装软件,Android的话建议使用Termux安装openssh

  • Terminal下面连接🔗️主机
1
2
3
ssh root@207.246.108.54 #用法 ssh 用户名@ip地址
sudo passwd root #更改root密码,这vultr的密码设的也太复杂了吧

更改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
4
wget 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
    4
    wget 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不占用44380这两个端口不就🐷️好了。

  1. 安装Caddy
  • 可以去官网下载二进制文件,不过YUM源里面有这个软件,直接通过源安装。
1
sudo yum install -y caddy vim #vim等下要用到

接下来就是配置我们的caddy了。首先我们切换到/home/wwwroot目录下,新建一个配置文件的目录。

1
2
3
4
cd /home/wwwroot
mkdir caddy_config
cd caddy_config
vim Caddyfile #按下i插入字符

Caddyfile内容:

1
2
3
4
5
6
7
207.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
3
mysql -u root -p  #接下来会让你输入命令
create DATABASE wordpress; #注意有个分号,这是一条语句
exit #退出

创建数据库

接下来我们还要让PHP监听9000端口,这个9000端口我们在caddy的配置文件里面有用到,区别你网站占用的端口。

首先我们来查找一下php-fpm的配置文件:

1
2
find / -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
2
systemctl start firewalld # 开启防火墙
firewall-cmd --add-port=1018/tcp --permanent # 永久打开1018端口

接下来,我们就要为这个端口添加服务,系统预先为一些端口配置了服务,我们复制一下,稍微改一改就行了。

1
2
cp /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
2
firewall-cmd --permanent --new-service-from-file=/etc/firewalld/services/caddy.xml --name=caddy #这样做,管理服务器更清晰、高效。name选项可选
firewall-cmd --reload #重新载入规则

更多更详细的用法,参阅官方文档

  • 打开caddy
1
2
cd /home/wwwroot/caddy_config   #进入我们为caddy配置的目录
caddy

不出意外,我们打开终端显示的网站,就能看到WordPress的设置页面。
WordPress
按照之前我们配置的填写就行了。
配置信息
不出意外,它会来到这个页面。这是由于这个目录权限的问题,需要手动操作一下。
按下Ctrl + z,暂停我们的caddy,来到博客的根目录下(即wordpress下面)。

1
vim wp-config.php

按下i插入,将提示的信息粘贴,保存退出(方法同上)。使用fg %1来恢复我们的caddy。

安装成功了,会出现下面的图片。
安装成功了

到这里,你以为就成功了?
我们还得添加一个ftp的账户,用来安装主题插件。使用之前的一键安装脚本下面的pureftpd.sh 来安装

1
2
3
4
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz
tar -xvf lnmp1.5.tar.gz
cd lnmp1.5
./pureftpd.sh

目录最好填博客的根目录

填上你的帐号密码;
ftp

更改一下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
    4
    use mysql; #选择mysql这个数据库
    update user set password=password('new_password') where user='root';
    flush privileges; #刷新特权等级
    quit;
  • 创建、删除和查看数据库

    1
    2
    3
    4
    5
    mysql -uroot -p2320813747
    mysql> create database wordpress; #创建名为wordpress的数据库
    mysql> drop database wordpress; #删除名为wordpress的数据库
    mysql> show databases; #显示已存在的数据库
    mysql> exit; #退出
  • 备份和还原数据库

    1
    2
    mysqldump -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

Enjoy it !