2020年从零开始在 Ubuntu 20.04 上安装 Wordpress

2020年从零开始在 Ubuntu 20.04 上安装 Wordpress

前言

本文假设读者有一定 Linux Server 基础。所以并不会对每一个命令进行解释。更多是对自己需要的记录。

本文大部分内容是

How To Install WordPress with LEMP on Ubuntu 18.04

的简单复述。

默认已经完成了

2020年从零开始初始化一台 Ubuntu 20.04 的 VPS

2020 Ubuntu 20.04 从零开始安装 LEMP

这两篇文章的设置

并且根据用最大性价比达成能全球访问的生产环境原则,在细节的设置上会进行我自己觉得需要做的相应调整。

digitalocean 是个良心厂商,tutorials 的文章都值得一看。

前期准备

默认读者拥有域名和一台VPS。

域名不是必要条件,如果没有。就忽略掉域名相关部分说明。

域名如需购买,我使用的是

NameCheap

.com每年续费大概在 USD $13 左右。

VPS 如需购买,我使用的主机商是

Vultr

DigitalOcean

最便宜的 VPS 每月 USD $5。

以上仅供参考。

本文具有强烈的个人感情色彩,如有观看不适,请尽快关闭. 本文仅作为个人学习记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作. 如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息.

命令说明

> , $, # 皆是符号来作为命令行提示符

1
2
3
> // 表示在本地环境输入
$ // 表示在 VPS 环境下普通用户身份输入
# // 表示在 VPS 环境下 root 用户身份输入
1
[] // 表示一个变量,需要替换为你自己的正确值

第一步 - 为 WordPress 创建一个 MySQL 数据库用户

1
$ mysql -uroot -p

输入 MySQL 的 root 密码进入 MySQL。

创建 Database

1
mysql> CREATE DATABASE 你的数据库名字 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

创建用户

1
mysql> CREATE USER '你的数据库用户名字'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库用户密码';

给用户设置数据库的所有权限

1
mysql> GRANT ALL PRIVILEGES ON 你的数据库名字.* TO'你的数据库用户名字'@'localhost';

刷新

1
2
FLUSH PRIVILEGES;
exit

CREATE DATABASE miepay DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE USER ‘miepay_user‘@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘>so?}gUQE)WMH3RKQLzQ8WZ+b47vTqi7’;

GRANT ALL PRIVILEGES ON miepay.* TO‘miepay_user‘@’localhost’;

第二步 - 安装 PHP 扩展

1
2
$ sudo apt update
$ sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

重启 php fpm
这里我的是 php7.4-fpm 注意一下你的php版本

1
$ sudo service php7.4-fpm restart

第三步 - 下载 WordPress

下载

1
2
$ cd /tmp
$ curl -LO https://wordpress.org/latest.tar.gz

解压

1
$ tar xzvf latest.tar.gz

拷贝 wp-config

1
$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

拷贝项目到目标位置

1
$ sudo cp -a /tmp/wordpress/. /var/www/你的wordpress项目名字

设置正确的用户和组

1
$ sudo chown -R www-data:www-data /var/www/你的wordpress项目名字

第四步 - 设置 WordPress

获得 WordPress secret key

1
$ curl -s https://api.wordpress.org/secret-key/1.1/salt/
1
2
3
4
5
6
7
8
9
Output
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

然后copy你获得的代码
打开你的配置文件 /var/www/你的wordpress项目名字/wp-config.php

1
$ sudo vim /var/www/你的wordpress项目名字/wp-config.php

找到这8行,然后替换为你刚刚获得的这8行。

1
2
3
4
5
6
7
8
9
10
...
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
...

替换为

1
2
3
4
5
6
7
8
9
10
...
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
...

接着找到 数据库设置的部分,把数据库改为刚刚创建好的数据库

1
2
3
4
5
6
7
8
9
...
define('DB_NAME', '你的数据库');

/** MySQL database username */
define('DB_USER', '你的数据库用户名字');

/** MySQL database password */
define('DB_PASSWORD', '你的数据库用户密码');
...

最后在文件的最后加入

1
2
...
define('FS_METHOD', 'direct');

然后保存退出

第五步 - 配置域名

将想要设置的你的域名做A记录指向 VPS 的 IP 地址。

第六步 - 配置 Nginx

一个偷懒的方法打开

NginxConfig

去设定需要的配置。

/var/www/你的wordpress项目名 为 WrodPress 的 root path

选自己合适的然后按照一步一步选和做到最后就搞定了。而且连 SSL 设置都一起搞定了。
需要注意的是

  1. Document root 留空
  2. 执行一些命令的时候需要权限,我是用sudo过去的。 他本来的命令没用
  3. nginxconfig.io/wordpress.conf 可能deny 了一些东西 可以直接注释掉

第七步 - 配置 Wordpress

打开 https://你设置好的域名

Setting1

Setting2

搞定

硬广时间

我目前现生活在新西兰。

如果是新晋奶爸可以看看婴儿奶粉

如果逢年过节孝敬父母可以逛逛澳新保健品

如果经常熬夜或喝酒,你需要程序员神器-护肝片

大量澳新产品均可通过么么爪海购精选购买。

么么爪海购精选上的价格在海外直邮模式上有一定优势,但是跟国内电商上大量低价商品没法比。优势上只能用我自己那可能并不存在的人品担保都是正品。

Author

Ewan Xiao

Posted on

September 18th 2020

Updated on

September 28th 2023

Licensed under

Comments