前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
WordPress 是互联网上最流行的 CMS(内容管理系统)。它允许您在 MySQL 后端和 PHP 处理的基础上轻松设置灵活的博客和网站。WordPress 受到了广泛的采用,是快速搭建网站的绝佳选择。设置完成后,几乎所有管理工作都可以通过 Web 前端完成。
在本指南中,我们将专注于在 Ubuntu 18.04 服务器上使用 LEMP 栈(Linux、Nginx、MySQL 和 PHP)设置 WordPress 实例。
先决条件
要完成本教程,您需要访问 Ubuntu 18.04 服务器。
在开始本指南之前,您需要执行以下任务:
- 在服务器上创建一个
sudo
用户:我们将使用具有sudo
权限的非根用户完成本指南中的步骤。您可以按照我们的 Ubuntu 18.04 初始服务器设置指南创建一个具有sudo
权限的用户。 - 安装 LEMP 栈:WordPress 需要一个 Web 服务器、一个数据库和 PHP 才能正确运行。设置 LEMP 栈(Linux、Nginx、MySQL 和 PHP)可以满足所有这些要求。按照本指南安装和配置这些软件。
- 使用 SSL 安全您的站点:WordPress 提供动态内容并处理用户身份验证和授权。TLS/SSL 是一种技术,它允许您加密站点的流量,使您的连接更加安全。设置 SSL 的方式将取决于您是否拥有站点的域名。
- 如果您拥有域名… 最简单的方式是使用 Let’s Encrypt 来保护您的站点,它提供免费的受信任证书。按照我们的 Let’s Encrypt 指南为 Nginx 进行设置。
- 如果您没有域名… 并且您只是用这个配置进行测试或个人使用,您可以使用自签名证书。这提供了相同类型的加密,但没有域验证。按照我们的 Nginx 自签名 SSL 指南进行设置。
完成设置步骤后,以您的 sudo
用户身份登录到服务器并继续以下操作。
步骤 1 —— 为 WordPress 创建 MySQL 数据库和用户
我们将采取的第一步是一个准备工作。WordPress 使用 MySQL 来管理和存储站点和用户信息。我们已经安装了 MySQL,但我们需要为 WordPress 创建一个数据库和一个用户。
首先,登录到 MySQL root(管理员)帐户。如果 MySQL 配置为使用 auth_socket
认证插件(默认情况下),您可以使用 sudo
登录到 MySQL 管理帐户:
sudo mysql
如果您更改了 MySQL root 帐户的认证方法以使用密码,则改用以下格式:
mysql -u root -p
系统将提示您输入为 MySQL root 帐户设置的密码。
首先,我们可以创建一个 WordPress 可以控制的单独数据库。您可以随意命名它,但在本指南中,我们将使用 wordpress
以保持简单。您可以通过输入以下命令为 WordPress 创建数据库:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
接下来,我们将创建一个单独的 MySQL 用户帐户,我们将专门用于操作我们的新数据库。从管理和安全的角度来看,创建单一功能的数据库和帐户是一个好主意。在本指南中,我们将使用名称 wordpressuser
。如果您愿意,可以随意更改此名称。
我们将创建此帐户,设置密码,并授予对我们创建的数据库的访问权限。您可以通过输入以下命令来执行此操作。请记住为您的数据库用户选择一个强密码:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
现在您已经拥有了一个专门为 WordPress 创建的数据库和用户帐户。我们需要刷新权限,以便当前的 MySQL 实例知道我们所做的最近更改:
FLUSH PRIVILEGES;
通过输入以下命令退出 MySQL:
EXIT;
MySQL 会话将退出,将您返回到常规的 Linux shell。
步骤 2 —— 安装额外的 PHP 扩展
在设置我们的 LEMP 栈时,我们只需要一个非常基本的扩展集合,以便让 PHP 与 MySQL 通信。WordPress 和许多插件利用额外的 PHP 扩展。
我们可以通过输入以下命令下载并安装一些最受欢迎的用于 WordPress 的 PHP 扩展:
sudo apt update
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
安装扩展完成后,重新启动 PHP-FPM 进程,以便正在运行的 PHP 处理器可以利用新安装的功能:
sudo systemctl restart php7.2-fpm
现在,服务器上已安装了所有必需的 PHP 扩展。
第三步 — 配置 Nginx
接下来,我们将对 Nginx 服务器块文件进行一些微小的调整。根据先决条件教程,你应该已经在 /etc/nginx/sites-available/
目录中为你的站点配置了一个配置文件,以响应服务器的域名或 IP 地址,并受到 TLS/SSL 证书的保护。我们将以 /etc/apache2/sites-available/wordpress
为例,但你应该根据需要替换你的配置文件路径。
此外,我们将使用 /var/www/wordpress
作为我们的 WordPress 安装的根目录。你应该使用你自己配置中指定的网站根目录。
使用 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
文件,而不是将 404 错误作为默认选项返回。
这应该看起来像这样:
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。
切换到可写目录,然后输入以下命令下载压缩版本:
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
解压缩文件以创建 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
用户和组。这是 Nginx 运行的用户和组,Nginx 需要能够读取和写入 WordPress 文件,以便提供网站并执行自动更新。
sudo chown -R www-data:www-data /var/www/wordpress
我们的文件现在位于服务器的文档根目录,并具有正确的所有权,但我们仍然需要完成一些其他配置。
第五步 — 设置 WordPress 配置文件
接下来,我们需要对主 WordPress 配置文件进行一些更改。
当我们打开文件时,我们首先要做的是调整一些密钥,以提供安装的安全性。WordPress 提供了一个安全的生成器来生成这些值,这样你就不必自己想出好的值。这些值仅在内部使用,因此在这里使用复杂的安全值不会影响可用性。
要从 WordPress 密钥生成器获取安全值,输入以下命令:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
你将得到类似以下内容的唯一值:
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 请勿复制这些值 c_j{iwqD^<+c9.k<J@4F');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X 请勿复制这些值 {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF 请勿复制这些值 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ 请勿复制这些值 #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf 请勿复制这些值 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY 请勿复制这些值 C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 请勿复制这些值 t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 请勿复制这些值 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', '从命令行复制的值');
define('SECURE_AUTH_KEY', '从命令行复制的值');
define('LOGGED_IN_KEY', '从命令行复制的值');
define('NONCE_KEY', '从命令行复制的值');
define('AUTH_SALT', '从命令行复制的值');
define('SECURE_AUTH_SALT', '从命令行复制的值');
define('LOGGED_IN_SALT', '从命令行复制的值');
define('NONCE_SALT', '从命令行复制的值');
. . .
接下来,我们需要修改文件开头的一些数据库连接设置。你需要调整数据库名称、数据库用户和我们在 MySQL 中配置的相关密码。
我们需要做的另一个更改是设置 WordPress 应该使用的文件系统写入方法。由于我们已经给予了 Web 服务器需要的写入权限,我们可以明确地将文件系统方法设置为“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');
完成后保存并关闭文件。
第 6 步 — 通过 Web 界面完成安装
现在服务器配置已经完成,我们可以通过 Web 界面完成安装。
在您的 Web 浏览器中,导航至服务器的域名或公共 IP 地址:
http://server_domain_or_IP
选择您想要使用的语言:
!WordPress 语言选择
接下来,您将进入主要设置页面。
为您的 WordPress 站点选择一个名称并选择一个用户名(出于安全考虑,建议不要选择类似 “admin” 的用户名)。系统会自动生成一个强密码。请保存此密码或选择其他强密码。
输入您的电子邮件地址,并选择是否希望阻止搜索引擎索引您的站点:
!WordPress 设置安装
当您点击继续后,将会进入一个提示您登录的页面:
!WordPress 登录提示
登录后,您将进入 WordPress 管理面板:
!WordPress 登录提示
结论
WordPress 应该已经安装并准备就绪!一些常见的下一步操作是选择您的文章的永久链接设置(可以在 设置 > 永久链接
中找到)或选择一个新主题(在 外观 > 主题
中)。如果这是您第一次使用 WordPress,请稍微探索一下界面,以熟悉您的新 CMS。