介绍
WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您轻松地在PHP处理的MySQL后端上设置灵活的博客和网站。WordPress已经见过令人难以置信的采用,是快速启动和运行网站的绝佳选择。
在本指南中,我们将专注于在Ubuntu 18.04服务器上设置一个WordPress实例(Linux, Nginx,MySQL和PHP)。
前提条件
要完成本教程,您将需要访问Ubuntu 18.04服务器。
您需要完成以下任务,才能开始本指南:
- ** 在您的服务器上创建
sudo
用户** : 我们将使用具有 " sudo " 特权的非根本用户完成本指南的步骤。 您可以通过遵循我们的Ubuntu 18.04 初始服务器设置指南来创建具有"sudo"权限的用户. - ** 安装一个 LEMP 堆栈**:WordPress 需要一个网络服务器,一个数据库,以及PHP,以便正确运行. 建立一个LEMP堆栈(Linux, Nginx, MySQL,和PHP)可以满足所有这些要求. 遵循本指南安装并配置此软件.
- ** 用 SSL 保护您的网站 ** : WordPress服务于动态内容并处理用户认证和授权. TLS/SSL 是允许您从您的站点加密流量的技术,以使您的连接安全. 您设置 SSL 的方式将取决于您是否拥有您的网站的域名 。
- ** 如果您有域名... ** 保护您网站最简单的方式是使用Let's Encrypt,它提供了免费的,可信赖的证书. 跟着我们的[让我们为Nginx加密指南] (https://andsky.com/tech/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04)来设置这个.
- ** 如果您没有域名...** 而您只是使用此配置进行测试或个人使用,您可以使用自签名的证书取而代之. 这提供了同类型的加密,但没有域验证. 遵循我们[自签的 Nginx (https://andsky.com/tech/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-18-04) 的 SSL 指南来设置 。 (英语)
当你完成了设置步骤后,登录你的服务器作为你的sudo
用户,并继续下方。
步骤 1 — 创建一个MySQL数据库和用户为WordPress
我們將採取的第一步是準備。WordPress使用MySQL來管理和儲存網站和用戶資訊.我們已經安裝了MySQL,但我們需要為WordPress建立一個資料庫和使用者。
要开始,请登录 MySQL 根 (管理) 帐户. 如果 MySQL 已配置使用auth_socket
身份验证插件(默认),则可以使用sudo
登录 MySQL 管理帐户:
1sudo mysql
如果您更改了身份验证方法,以便为 MySQL 根帐户使用密码,则使用以下格式:
1mysql -u root -p
您将被提示为 MySQL 根帐户设置的密码。
首先,我们可以创建一个单独的数据库,WordPress可以控制它,你可以称之为任何你想要的,但我们将在本指南中使用WordPress
,以保持简单。
1CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
<$>[注] **注:**每个MySQL语句必须以半列(;)结束。
接下来,我们将创建一个单独的MySQL用户帐户,我们将专门用于在我们的新数据库上运行。创建一个功能的数据库和帐户从管理和安全的角度来说是一个好主意。
我们将创建此帐户,设置密码,并授予访问我们创建的数据库。我们可以通过键入以下命令来做到这一点。
1GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
你现在有一个数据库和用户帐户,每一个都是专门为WordPress创建的,我们需要清除权限,以便当前的MySQL实例知道我们最近所做的更改:
1FLUSH PRIVILEGES;
通过键入离开MySQL:
1EXIT;
MySQL 会话将结束,您将返回正常的 Linux 壳。
第2步:安装额外的PHP扩展
当我们设置LEMP堆栈时,我们只需要一组非常小的扩展来让PHP与MySQL进行通信。
我们可以通过键入下载并安装一些最流行的PHP扩展来使用WordPress:
1sudo apt update
2sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
<$>[注] **注:**每个WordPress插件都有自己的要求。有些可能需要安装额外的PHP包。检查您的插件文档以了解其PHP要求。
当您完成安装扩展时,请重新启动 PHP-FPM 流程,以便运行的 PHP 处理器能够利用新安装的功能:
1sudo systemctl restart php7.2-fpm
我们现在已经在服务器上安装了所有必要的PHP扩展。
步骤 3 – 配置 Nginx
接下来,我们将对我们的 Nginx 服务器封锁文件做一些小调整. 基于前提教程,您应该在 /etc/nginx/sites-available/
目录中为您的网站配置文件,以响应您的服务器的域名或 IP 地址,并通过 TLS/SSL 证书保护。
此外,我们将使用/var/www/wordpress
作为我们的WordPress安装的根目录。
<$>[注]
注: 您可能正在使用 /etc/nginx/sites-available/default
默认配置(具有 /var/www/html
作为您的 Web 根)。 如果您只想在这个服务器上托管一个网站,这很好。
打开您网站的服务器封锁文件,使用sudo
特权开始:
1sudo nano /etc/nginx/sites-available/wordpress
在主服务器
块中,我们需要添加一些位置
块。
首先,为/favicon.ico
和/robots.txt
的请求创建准确匹配的位置块,我们不希望登录请求。
我们将使用一个常规的表达位置来匹配任何对静态文件的请求,我们将再次关闭这些请求的日志,并将其标记为高度可缓存,因为这些通常是昂贵的资源。
1[label /etc/nginx/sites-available/wordpress]
2server {
3 . . .
4
5 location = /favicon.ico { log_not_found off; access_log off; }
6 location = /robots.txt { log_not_found off; access_log off; allow all; }
7 location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
8 expires max;
9 log_not_found off;
10 }
11 . . .
12}
在现有的位置 /
块中,我们需要调整try_files
列表,这样而不是作为默认选项返回 404 错误,控制将转移到请求参数的index.php
文件中。
这应该看起来像这样的东西:
1[label /etc/nginx/sites-available/wordpress]
2server {
3 . . .
4 location / {
5 #try_files $uri $uri/ =404;
6 try_files $uri $uri/ /index.php$is_args$args;
7 }
8 . . .
9}
完成后,保存并关闭文件。
现在,我们可以通过键入检查我们的配置语法错误:
1sudo nginx -t
如果没有报告错误,请通过键入重新加载 Nginx:
1sudo systemctl reload nginx
接下来,我们将下载并设置WordPress本身。
第4步:下载WordPress
现在我们的服务器软件已配置,我们可以下载并设置WordPress,特别是出于安全原因,我们建议从他们的网站上获取最新的WordPress版本。
转换为可编写的目录,然后通过键入下载压缩版本:
1cd /tmp
2curl -LO https://wordpress.org/latest.tar.gz
提取压缩文件来创建WordPress目录结构:
1tar xzvf latest.tar.gz
在我们这样做之前,我们可以将样本配置文件复制到WordPress实际阅读的文件名:
1cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
现在,我们可以将整个目录内容复制到我们的文档根中。我们正在使用-a
旗帜来确保我们的权限得到维持。我们正在使用源目录末尾的点头来表示目录内的一切都应该被复制,包括任何隐藏的文件:
1sudo cp -a /tmp/wordpress/. /var/www/wordpress
现在我们的文件已经存在,我们将将所有权分配给www-data
用户和组,这是 Nginx 运行的用户和组, Nginx 将需要能够阅读和写 WordPress 文件,以便为网站提供服务并执行自动更新。
1sudo chown -R www-data:www-data /var/www/wordpress
我们的文件现在位于我们的服务器的文档根中,并且拥有正确的所有权,但我们仍然需要完成一些更多的配置。
第5步:设置WordPress配置文件
接下来,我们需要对主 WordPress 配置文件进行一些更改。
当我们打开文件时,我们的第一个业务命令将是调整一些秘密密密钥,为我们的安装提供一些安全性。WordPress为这些值提供一个安全的生成器,因此您不必试图自行提出良好的价值。
要从 WordPress 秘密密密钥生成器中获取安全值,键入:
1curl -s https://api.wordpress.org/secret-key/1.1/salt/
您将获得像这样的独特值:
<$>[警告] 警告: 重要的是每次请求独特值。
1[secondary_label Output]
2define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
3define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
4define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
5define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
6define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
7define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
8define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
9define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
这些是配置行,我们可以直接粘贴到我们的配置文件中,以设置安全密钥。
现在,打开WordPress配置文件:
1sudo nano /var/www/wordpress/wp-config.php
查找包含这些设置的 dummy 值的部分,它将看起来像这样:
1[label /var/www/wordpress/wp-config.php]
2. . .
3
4define('AUTH_KEY', 'put your unique phrase here');
5define('SECURE_AUTH_KEY', 'put your unique phrase here');
6define('LOGGED_IN_KEY', 'put your unique phrase here');
7define('NONCE_KEY', 'put your unique phrase here');
8define('AUTH_SALT', 'put your unique phrase here');
9define('SECURE_AUTH_SALT', 'put your unique phrase here');
10define('LOGGED_IN_SALT', 'put your unique phrase here');
11define('NONCE_SALT', 'put your unique phrase here');
12
13. . .
删除这些行并粘贴您从命令行复制的值:
1[label /var/www/wordpress/wp-config.php]
2. . .
3
4define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
5define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
6define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
7define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
8define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
9define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
10define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
11define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
12
13. . .
接下来,我们需要在文件开始时修改某些数据库连接设置,您需要调整我们在MySQL中配置的数据库名称、数据库用户和相关密码。
我们需要做的另一个变化是设置WordPress应该用来写到文件系统的方法. 由于我们已经给了Web服务器允许写到它需要的地方,我们可以明确地将文件系统的方法设置为直接
。 未能在我们当前的设置中设置此设置会导致WordPress在我们执行某些操作时提示FTP凭据。
1[label /var/www/wordpress/wp-config.php]
2. . .
3
4define('DB_NAME', 'wordpress');
5
6/** MySQL database username */
7define('DB_USER', 'wordpressuser');
8
9/** MySQL database password */
10define('DB_PASSWORD', 'password');
11
12. . .
13
14define('FS_METHOD', 'direct');
保存并关闭文件,当你完成。
步骤 6 – 通过 Web 界面完成安装
现在,服务器配置已经完成,我们可以通过Web界面完成安装。
在您的网页浏览器中,导航到您的服务器的域名或公共IP地址:
1http://server_domain_or_IP
选择您想要使用的语言:
接下来,您将进入主设置页面。
选择您的WordPress网站的名称,并选择一个用户名(不建议为安全目的选择admin
)。
输入您的电子邮件地址,然后选择是否希望阻止搜索引擎索引您的网站:
当您点击前进时,您将被带到一个提示您登录的页面:
一旦您登录,您将被带到WordPress管理仪表板:
结论
WordPress 应该安装并准备好使用! 下一步的一些常见步骤是为您的帖子选择 permalinks 设置(可以在设置 > Permalinks
中找到)或选择一个新主题(在外观 > 主题
中)。