来源
本文翻译自: How To Install WordPress with LEMP on Ubuntu 18.04
如果原文作者或原文版权所有者认为翻译不当或有侵权行为,请联系本站站长.
前言
WordPress
是互联网上最流行的CMS(内容管理系统, Content Management System). 它可以让你轻易地搭建起一个以MySQL为后端,基于PHP的复杂的博客或者网站.WordPress
现在被数以万计的网站采用.并且,它是快速建立起一个网站的优秀选项.搭建完以后,几乎所有操作可以通过网页前端来完成.
在这个教程里,我们会专注于在Ubuntu系统和LEMP
(Linux, Nginx, MySQL, PHP)的基础上搭建起一个WordPress.
开始之前
为了达到理想的效果,你需要有权访问一台Ubuntu 18.04服务器.
译注:废话…本教程也可以用于Ubuntu系统其他版本,但可能有微小差别,有困难欢迎在下方留言
在开始之前,你需要完成一下几个步骤:
– 在服务器中创建一个sudo
用户: 我们将会用到一个具有sudo
权限的用户.你可以通过这个教程来创建一个具有sudo
权限的用户.
– 安装LEMP
: WordPress 需要在一个网络服务器,一个数据库和PHP的支持下运行.安装LEMP
可以满足这些需求.你可以根据这个教程来搭建起LNMP
环境.
– 让你的网站使用SSL: WordPress提供动态网页服务并且处理用户的登录认证.TLS/SSL是一种让流量加密的技术,可以让你的网站变得更安全.启用SSL的方法取决于你是否有一个域名:
– 如果你有一个域名…启用SSL最简单的办法就是使用Let’s Encrypt家的产品.Let’s Encrypt提供免费、可信的证书.跟随这个教程启用SSL.
– 如果你没有域名…并且你只是用SSL来测试或者是自己使用,你可以用自己签发的证书代替.这同样科技达到加密的效果,但是没有做域名验证.跟随这个教程做自己签发的证书.
当你完成上述步骤,用有sudo
权限的用户登录服务器并进行下一步
译注:
– 你也可以直接用root用户而不创建一个sudo
用户,但是这样可能带来安全性问题(操作不当可能会使系统崩溃,但是比较方便),如果你使用的是root用户,那么下面的命令中的sudo
可以不输入.
– 其实是否使用SSL并不影响下面的操作,没有使用SSL的读者可以选择安装WordPress以后再安装SSL证书
第一步:为WordPress创建一个数据库和一个用户
第一步也是预备工作.WordPress用MySQL管理和储存网站的内容和用户的资料.我们现在已经安装好MySQL了,但是我们还需要创建一个数据库和一个用户给WordPress使用.
在进行下一步之前,先用MySQL的root用户(管理员用户)登录.如果登录MySQL使用的是auth_socket
认证插件(默认),那么你可以使用sudo
来登录:
sudo mysql
如果之前将认证方式改为使用密码登录,那么请使用下面的命令:
mysql -u root -p
你需要输入root用户的密码
首先,我们创建一个供WordPress操作的数据库.你可以把数据库名字改成其他名字,但在下面的教程中,我们将会使用wordpress
这个名字.输入以下命令以创建一个数据库:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
注意:
每一条MySQL语句都必须以分号(;)结尾.当你遇到问题时,请先检查语句末尾是否加上了分号
接下来,我们将会创建一个独立的MySQL用户,用来操作新建的数据库.为每一个项目创建一个数据库和一个独立的用户有助于管理,并且可以增加安全性.我们将会使用wordpressuser
作为用户名,你可以随意更改这个名字.
我们将要创建这个用户并且设置密码,然后让它有权限访问我们刚刚创建的数据库.输入下方的命令.最好为这个用户选择一个强密码:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
现在供WordPress使用的数据库和对应的用户已经创建好了.刷新,让数据库储存更改:
FLUSH PRIVILEGES;
退出MySQL:
EXIT;
与MySQL的会话将会终止,现在你看到的是Linux终端.
第二步:安装额外的PHP扩展
安装完LEMP
以后,我们还需要安装一些扩展使得PHP能与MySQL通信.WordPress和WordPress中的插件都需要这些额外的扩展.
我们可以通过下列命令安装WordPress常用的一些扩展:
sudo apt update
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
注意:
每一个WordPress插件有它需要的扩展清单.有些插件可能需要更多的扩展才能正常使用.查看WordPress文档以确保已经安装所有的插件.除了上面列出的插件以外,其他插件可以通过apt
命令安装
这些扩展安装完成以后,重启PHP-FPM进程,启用新安装的插件:
sudo systemctl restart php7.2-fpm
我们现在完成插件的配置了.
第三步:配置Nginx
接下来,我们需要对Nginx的配置做一些小小的更改.你可能在准备步骤中已经有了一个位于/etc/nginx/sites-available
的配置文件.这个配置文件是指向你的域名或者IP地址的,并且已经做好了SSL的相关配置.我们会以/etc/nginx/sites-available/wordpress
作为样例,实际操作时应该以你的配置文件路径为准.
另外,我们会用/var/www/wodpress
作为WordPress的安装路径.你应该将配置文件中的网站根目录改为这个.
注意:
你可以使用默认配置文件(/etc/nginx/sites-available
)中的配置,这时网站的根目录应为/var/www/html
.当这台服务器上只有一个网站在运作时,这么做是一个不错的选择.但如果这台服务器上托管了多个网站,最好把配置文件分开,每一个文件对应不同的网站
译注:这一段有疑惑可以先跳过,也欢迎在下方留下疑惑,我会尽力解答
用sudo
权限打开你的网站的配置文件:
sudo nano /etc/nginx/sites-available/wordpress
我们需要在server
块中,加入一些location
块
先为/favicon.ico
和/robots.txt
创建精确匹配的块.
我们会使用正则表达式来匹配静态文件.我们也会避免把请求这些文件记录到日志里面,这样可以避免大量日志的产生,减少资源的浪费.你可以在静态文件列表中加入其他常用的后缀名:
server {
. . .
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
. . .
}
在已有的location /
块中,我们需要更改try_files
选项,让网页把未能被其他块匹配的请求传递给index.php
文件.
server {
. . .
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
. . .
}
完成以后,保存文件并且退出
使用一下命令检查配置文件是否有语法错误:
sudo nginx -t
如果没有错误产生,那么让Nginx重新载入配置文件:
sudo systemctl reload nginx
接下来,我们可以下载并安装WordPress了
第四步:下载WordPress
现在,所有软件已经配置好了.我们开始搭建WordPress.安全起见,安装最新版本的WordPress是最好的选择.
译注:WordPress是世界上受攻击次数最多的博客平台
把目录切换到用户具有写权限的地方,然后通过以下命令下载最新版本的WordPress:
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
译注: L后面跟的是大写字母O
用以下命令解压WordPress:
tar xzvf latest.tar.gz
我们稍后要把这些文件移动到网站的根目录.在这之前,我们把默认的配置文件复制一份,并且重命名为WordPress使用的配置文件的名字:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
接下来,我们把整个目录复制到网站的根目录.我们用-a
选项确保我们的权限不会失效.注意到源文件末尾有一个点(.),这是用来保证在此目录下的所有文件(包括隐藏文件)都被复制到指定的文件夹中:
sudo cp -a /tmp/wordpress/. /var/www/wordpress
现在所有文件都已经在目标位置了.我们需要把这些文件的所有者改为www-data
用户和www-data
用户组.这是用于运行Nginx的默认用户,并且为了使网站正常运作并且保持更新,Nginx应该具有读、写这些文件的权限.
sudo chown -R www-data:www-data /var/www/wordpress
现在所有在根目录的文件的所有者都已经转换为指定的用户了,不过我们还要进行一些配置.
第五步:配置WordPress
接下来,我们需要更改WordPress的主要配置文件.
当我们打开这个文件的时候,要做的第一步是让安装WordPress的过程更加安全.WordPress提供了一个生成器以生成一些足够安全的秘钥.这些值(密钥)只供WordPress内部使用,所以这些复杂的值不会降低WordPress的可用性.
输入以下命令以从WordPress密钥生成器中获取值:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
你会得到一些不同的值,就像这样:
注意:不要复制下面的这些值
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&%');
这些数据可以直接粘贴在配置文件中,请复制你收到的值(全部)
现在,打开WordPress的配置文件:
sudo nano /var/www/wordpress/wp-config.php
找到存放上述值的地方,它看起来长这样:
. . .
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');
. . .
删除这些行,然后把刚刚复制的值粘贴进去:
. . .
define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
. . .
接下来,我们要更改一些数据库连接选项,通常这些选项位于配置文件的开头.你需要根据之前的设置更改数据库的名称、用户以及对应的密码.
另外我们需要设置WordPress更改本地文件的方式.因为我们之前已经给了 相应的权限,我们可以直接把更改文件的方式设置为’direct’.如果设置错误,可能导致我们在做其他操作的时候,WordPress需要FTP凭证.这个设置可以加在数据库连接选项的下方,也可以加在其他配置文件的其他地方:
. . .
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
. . .
define('FS_METHOD', 'direct');
保存并关闭文件.
译注:如果没有正确设置更改本地文件的方式,在安装新的主题的时候会需要FTP凭证
第六步:在网页中完成安装
现在服务器已经配置完成,我们可以在网页中完成接下来的安装.
在你的浏览器中,输入你的域名或者服务器IP地址:
http://server_domain_or_IP
选择你想使用的语言:
接下来,会出现安装页面.
选择一个你的WordPress站点的名字并且选择一个用户名(安全起见,不推荐使用admin
).页面会自动生成一个强密码,保存这个密码以便日后管理站点.当然你也可以选择一个你喜欢的密码.
输入你的邮箱地址并且选择是否希望被搜索引擎收录:
当你点击安装
的之后,你会被重定向到一个允许你登录的地方.
当你登录以后,你会被重定向到WordPress仪表盘:
总结
WordPress已经可以使用了!接下的可以设置文章的固定连接(可以在Settings > Permalinks
找到),或者选择一个新主题(Apperance > Themes
).如果这是你第一次使用WordPress,那么你可以熟悉一下新的内容管理系统.