如何在 Ubuntu 18.04 上使用托管数据库安装 WordPress

此教程的早期版本是由 Justin Ellingwood_

介绍

WordPress是互联网上最流行的CMS(内容管理系统),它是快速启动和运行网站的绝佳选择,并且在初始设置后,几乎所有管理都可以通过Web前端进行。

WordPress 旨在从数据库后端提取内容 - 包括帖子,评论,用户配置文件和其他数据 - 随着网站的增长并必须满足越来越多的流量,它最终可以超过其原始数据库。 为了解决这个问题,人们可以将数据库扩展到具有更多RAM或CPU的机器,但这是一个疲劳的过程,导致数据丢失或破坏的风险。

在本指南中,我们将专注于设置一个受管理的 MySQL数据库和Ubuntu 18.04服务器的WordPress实例,这将要求您安装 PHPApache以在网络上服务内容。

前提条件

为了完成本教程,您将需要:

  • ** 访问Ubuntu 18.04服务器** : 此服务器应配置一个非root sudo 启用的用户和一个防火墙 。 您可以遵循我们的 [Ubuntu 18.04 初始服务器设置指南] (https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-18-04) 设置此功能 。
  • A管理 MySQL 数据库 : 要提供数字海洋管理MySQL数据库,请见我们的管理数据库产品文件。 请注意,本指南将在示例中提及"数字海洋"管理数据库,但这里提供的指示也一般应当为来自其他云端提供者的"管理 MySQL"数据库工作.
  • ** 安装在服务器上的 LAMP 堆栈** : 除了数据库,WordPress还需要一个网络服务器和PHP来正确运行. 建立完整的LAMP堆栈(Linux,Apache,MySQL,和PHP)可以满足所有这些要求. 遵循本指南安装并配置此软件. 当您遵循此指南时, 请确保您 [设置虚拟主机] (https://andsky.com/tech/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04#step-4-%E2%80%94-setting-up-virtual-hosts-(recommended ) 指向您拥有的域名 。 此外,确保** skip步骤2**,因为将`mysql-server'安装在您的机器上将使您管理的数据库实例变得多余。
  • ** 为您的站点执行的 TLS/ SSL 安全** : 如果您有域名,最容易保护您网站的方法就是Let's Encrypt,它提供了免费的,信任的证书. 跟着我们让我们为Apache加密指南来设置这个. 请注意,这也需要您在您的服务器上获取域名并设置DNS记录. 随[此介绍到 DigitalOcean DNS (https://www.digitalocean.com/docs/networking/dns/) 详细了解如何配置此选项. 在备选上,如果没有域名,则为您的网站使用自签证书. (英语)

当您完成设置步骤后,请登录您的服务器作为您的非root 用户,并继续下方。

步骤 1 – 添加MySQL软件存储库并安装mysql-client

为了配置您的管理 MySQL 实例,您需要安装一个客户端,允许您从您的服务器访问数据库。

在许多情况下,您可以使用apt命令来安装mysql-client,但如果您正在使用默认的Ubuntu存储库,则将安装该程序的版本 5.7。为了访问DigitalOcean Managed MySQL数据库,您需要安装版本 8.0 或更高版本。

首先,在您的 Web 浏览器中导航到 MySQL APT Repository** 页面。在右下角找到 ** Download** 按钮,然后点击到下一个页面。此页面将提示您登录或注册 Oracle Web 帐户。您可以跳过这个,而不是寻找说 ** No thanks, just start my download** 的链接。右键单击链接,选择 ** Copy Link Address**(此选项可能因您的浏览器而有所不同)。

在您的服务器上,移动到一个目录,您可以写到:

1cd /tmp

使用curl下载文件,记住贴上你刚刚复制的地址,而不是以下命令的突出部分。你还需要将两个命令行标志传输到curlO命令curl输出到一个文件,而不是标准输出。L标志使curl遵循HTTP重定向,这在这种情况下是必要的,因为你复制的地址实际上在下载文件之前重定向到另一个位置:

1curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb

该文件现在应该被下载到您的当前目录. 列出文件以确保:

1ls

您将看到输出中列出的文件名称:

1[secondary_label Output]
2mysql-apt-config_0.8.13-1_all.deb
3. . .

现在您可以将 MySQL APT 存储库添加到您的系统存储库列表中. 命令 dpkg 用于安装、删除和检查 .deb 软件包. 以下命令包含 -i 旗帜,表示您希望从指定的文件中安装:

1sudo dpkg -i mysql-apt-config*

在安装过程中,您将收到一个配置屏幕,您可以指定您喜欢的MySQL版本,以及安装其他MySQL相关工具的存储库的选项。默认值将添加最新的MySQL稳定版本的存储库信息,而不是其他任何东西。

Selecting mysql-apt-config configuration options

接下来,该软件包将添加存储库,更新您的apt软件包缓存以使新软件包可用:

1sudo apt update

接下来,您可以稍微清理您的系统并删除您下载的文件,因为您将来不需要它:

1rm mysql-apt-config*

<$>[注] 注: 如果您需要更新这些存储库的配置,只需运行以下命令来选择您的新选项:

1sudo dpkg-reconfigure mysql-apt-config

选择新选项后,运行以下命令来更新您的包缓存:

1sudo apt update

美元

现在你已经添加了MySQL存储库,你已经准备好安装实际的MySQL客户端软件了。

1sudo apt install mysql-client

一旦该命令完成,请检查软件版本号,以确保您有最新版本:

1mysql --version
1[secondary_label Output]
2mysql Ver 8.0.17-cluster for Linux on x86_64 (MySQL Community Server - GPL)

您现在可以连接到您的管理数据库,并开始准备它与WordPress一起工作。

步骤 2 – 创建一个MySQL数据库和用户为WordPress

WordPress 使用 MySQL 来管理和存储网站和用户信息.假设您已经完成了所有 前提教程,您将已经提供一个受管理的 MySQL 实例。

大多数受管理的数据库提供商提供用于连接数据库实例的 uniform resource identifier (URI)。

首先,在左侧的侧栏菜单中单击数据库并选择您想在WordPress安装中使用的MySQL数据库。向下滚动到连接详细信息部分,然后在主机字段中复制链接,然后将此链接粘贴到以下命令中,以您刚刚复制的信息代替host_uri。同样,在DigitalOcean Managed Database字段中复制端口号,即将是25060,并用该号码代替port。此外,如果这是您第一次连接到您的管理数据库,并且您没有创建自己的MySQL管理用户,则在username字段中复制值,并粘贴到命令中,取代用户:

1mysql -u user -p -h host_uri -P port

此命令包括p旗,它会提示您指定MySQL用户的密码。对于DigitalOcean Managed Database的默认 doadmin 用户,您可以通过点击 显示 链接在 连接细节 部分中发现密码来找到。

<$>[注] 注: 如果您不使用 DigitalOcean 管理数据库,您的连接选项可能会有所不同。

从MySQL提示,创建一个新的数据库,WordPress将控制。你可以称之为任何你想要的,但我们将使用这个指南中的名称 wordpress 保持简单。

1CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

<$>[注] 注: 每一个MySQL语句都必须以半列(;)结束。

接下来,创建一个新的MySQL用户帐户,您将专门使用它在新数据库上运行。创建单一的数据库和帐户是一个很好的想法,从管理和安全的角度来看。

运行以下命令,但用您的Ubuntu服务器的IP地址代替your_server_ip。但请注意,这将限制wordpressuser**只能从您的LAMP服务器连接;如果您计划从本地计算机管理WordPress,您应该输入该机器的IP地址。

在MySQL 8.0 及更高版本中,默认身份验证插件是caching_sha2_password,通常被认为比mysql_native_password更安全。 然而,从本文中看,PHP 并不支持caching_sha2_password,这就是为什么我们在这个命令中指定mysql_native_password:

1CREATE USER 'wordpressuser'@your_server_ip IDENTIFIED WITH mysql_native_password BY 'password';

<$>[注意] 注意 :如果你不知道你的服务器的公共IP地址是什么,有几种方法可以找到它。

其中一种方法是使用curl实用程序与外部人员联系,告诉您 it 如何看待您的服务器,例如,您可以使用curl联系 IP 检查工具,如 ICanHazIP:

1curl http://icanhazip.com

此命令将在输出中返回服务器的公共 IP 地址。

然后允许该用户访问您刚刚创建的数据库,执行以下命令:

1GRANT ALL ON wordpress.* TO 'wordpressuser'@your_server_ip;

你现在有一个数据库和用户帐户,每一个都是专门为WordPress创建的。

1exit

这需要配置管理的MySQL数据库以便与WordPress一起工作,在下一步,您将安装一些PHP扩展,以便从CMS中获得更多的功能。

步骤 3 – 安装额外的 PHP 扩展

假设您遵循了 前提 LAMP 堆栈教程,您将安装几个扩展,旨在让 PHP 正确地与 MySQL 通信。

要下载并安装一些更受欢迎的PHP扩展,以便与WordPress一起使用,请运行以下命令:

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

<$>[注] 注: 每个WordPress插件都有自己的要求。有些可能需要你安装额外的PHP包。检查你的插件文档,看看它需要哪些扩展。

您将重新启动Apache,在下一节中加载这些新扩展. 但是,如果您返回这里来安装额外的插件,您可以通过键入来重新启动Apache:

1sudo systemctl restart apache2

否则,继续到步骤4。

步骤 4 – 调整Apache的配置以允许.htaccess 重写和重写

为了让Apache能够正确地服务您的WordPress安装,您必须对您的Apache配置做出一些小调整。

如果您遵循了先决条件的教程,您应该已经在 /etc/apache2/sites-available/ 目录中为您的网站设置文件,我们将使用 /etc/apache2/sites-available/your_domain.conf 作为一个示例,但您应该在适当的情况下将路径替换为您的配置文件。

此外,我们将使用 /var/www/your_domain 作为本例中的 root 目录 WordPress 安装。

<$>[注] 注: 您可能正在使用000-default.conf的默认配置(使用/var/www/html作为您的网页根)。

目前,使用.htaccess 文件已被禁用. WordPress 和许多 WordPress 插件广泛地使用这些文件来调整网页服务器的行为。

打开您的网站的 Apache 配置文件:

1sudo nano /etc/apache2/sites-available/your_domain.conf

要允许.htaccess 文件,您需要在指向文档根的目录块中设置AllowOverride指令,在配置文件中添加VirtualHost块内的以下文本块,确保您使用正确的 Web 根目录:

1[label /etc/apache2/sites-available/your_domain.conf]
2<Directory /var/www/your_domain>
3    AllowOverride All
4</Directory>

完成后,保存并关闭文件。

接下来,启用mod_rewrite,以便您可以使用 WordPress 永久链接功能:

1sudo a2enmod rewrite

在实施您刚刚做的更改之前,请检查配置文件中没有语法错误:

1sudo apache2ctl configtest

输出可能有一个看起来像这样的消息:

1[secondary_label Output]
2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
3Syntax OK

如果你想抑制顶行,只需在/etc/apache2/apache2.conf上添加一个ServerName指令,它只会影响你的主(全球)Apache配置文件。ServerName可以是你的服务器的域名或IP地址,但是,这只是一个信息;它不会影响你的网站的功能,只要输出包含Syntax OK,你就可以继续。

重启 Apache 以执行这些更改:

1sudo systemctl restart apache2

有了它,你已经准备好自己下载和设置WordPress。

第5步:下载WordPress

现在你的服务器软件已经配置,你可以安装和配置WordPress. 出于安全原因,它总是建议从他们的网站获得最新的WordPress版本。

首先,导航到可编写的目录. /tmp 将为此步骤的目的工作:

1cd /tmp

然后通过键入下载压缩版本:

1curl -O https://wordpress.org/latest.tar.gz

提取压缩文件来创建WordPress目录结构:

1tar xzvf latest.tar.gz

您会暂时将这些文件移动到您的文档根中,然后再添加一个愚蠢的 .htaccess 文件,以便 WordPress 稍后可以使用它。

通过键入创建文件:

1touch /tmp/wordpress/.htaccess

此外,将样本配置文件复制到WordPress实际读取的文件名:

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

创建一个升级目录,以便WordPress在试图在软件更新后自行完成此操作时不会遇到权限问题:

1mkdir /tmp/wordpress/wp-content/upgrade

然后将整个目录内容复制到文档根中,下面的命令使用源目录末尾的期限,表示应该复制目录中的所有内容,包括隐藏的文件(如您刚刚创建的.htaccess 文件):

1sudo cp -a /tmp/wordpress/. /var/www/your_domain

这需要把WordPress下载到你的服务器上。在这个时候,但是,你仍然无法在你的浏览器中访问WordPress设置界面. 要解决这个问题,你需要对你的服务器的WordPress配置做出一些更改。

步骤 6 – 配置 WordPress 目录

在通过基于Web的WordPress设置之前,您需要调整您的WordPress目录中的某些项目。 一个重要的配置更改涉及设置合理的文件权限和所有权。

首先,将所有文件的所有权交给用户和组,这是Apache Web 服务器在 Debian 和 Ubuntu 系统上运行的用户,Apache 将需要能够阅读和写 WordPress 文件,以便为网站提供服务并执行自动更新。

更新您的网页根目录的所有权用chown:

1sudo chown -R www-data:www-data /var/www/your_domain

接下来,运行以下两个查找命令,为 WordPress 目录和文件设置正确的权限:

1sudo find /var/www/your_domain/ -type d -exec chmod 750 {} \;
2sudo find /var/www/your_domain/ -type f -exec chmod 640 {} \;

这些应该是一个合理的权限设置开始,但要注意,一些插件和程序可能需要额外的更新。

现在,您需要对主 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/your_domain/wp-config.php

查找包含这些设置的 dummy 值的部分,它将看起来像这样:

 1[label /var/www/your_domain/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/your_domain/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. . .

首先,更新DB_NAME,DB_USERDB_PASSWORD字段,以指向您在MySQL中配置的数据库名称、数据库用户和相关密码:

 1[label /var/www/your_domain/wp-config.php]
 2. . .
 3/** The name of the database for WordPress */
 4define('DB_NAME', 'wordpress');
 5
 6/** MySQL database username */
 7define('DB_USER', 'wordpressuser');
 8
 9/** MySQL database password */
10define('DB_PASSWORD', 'password');
11
12. . .

您还需要将DB_HOST字段中的localhost替换为您管理的数据库的主机。

1[label /var/www/wordpress/wp-config.php]
2. . .
3
4/** MySQL hostname */
5define( 'DB_HOST', 'managed_database_host:managed_database_port' );
6
7. . .

您需要做的最后一个更改是设置WordPress将使用的方法来写到文件系统. 由于您已经给了Web服务器的权限来写到它需要的地方,您可以明确设置文件系统的方法为直接端口。

此设置可在数据库连接设置下方或文件中的任何其他位置添加:

1[label /var/www/your_domain/wp-config.php]
2. . .
3
4define('FS_METHOD', 'direct');
5. . .

保存并关闭文件,当你完成。

完成这些更改后,您将完成在您的网页浏览器中安装WordPress的过程,但还有一个步骤,我们建议您完成,以便为您的配置添加额外的安全层。

步骤 7 – (推荐)配置 WordPress 以通过 TLS/SSL 与 MySQL 进行通信

在此时,您的 WordPress 安装正在与您管理的 MySQL 数据库进行通信. 但是,没有保证两台机器之间的数据传输是安全的. 在此步骤中,我们将配置 WordPress 以通过 TLS/SSL 连接与您的 MySQL 实例进行通信,以确保两台机器之间的安全通信。

要做到这一点,您需要您的管理数据库的 CA 证书。 对于一个 DigitalOcean 管理数据库,您可以通过再次导航到您的 控制面板 中的 ** 数据库** 选项卡来查找。

然后将此文件传输到您的WordPress服务器. 如果您的本地机器运行Linux或macOS,您可以使用一个工具,如scp:

1[environment local]
2scp /path/to/file/ca-certificate.crt sammy@your_server_ip:/tmp

如果您的本地计算机运行的是 Windows,则可以使用替代工具,如 WinSCP

一旦 CA 证书在您的服务器上,请将其移动到 /user/local/share/ca-certificates/ 目录,这是 Ubuntu 的可信证书商店:

1sudo mv /tmp/ca-certificate.crt /usr/local/share/ca-certificates/

此程序在/usr/local/share/ca-certificates中寻找证书,将任何新证书添加到/etc/ssl/certs/目录中,并根据其内容生成一个值得信赖的SSL证书列表:

1sudo update-ca-certificates

然后,重新打开你的wp-config.php文件:

1nano /var/www/your_domain/wp-config.php

在文件中的某个地方,添加以下行:

1[label /var/www/your_domain/wp-config.php]
2. . .
3define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
4. . .

保存并关闭文件。

之后,WordPress将安全地与您管理的MySQL数据库进行通信。

步骤 8 – 通过 Web 界面完成安装

现在,服务器配置已经完成,您可以通过WordPress Web接口完成安装。

在您的网页浏览器中,导航到您的服务器的域名或公共IP地址:

1https://server_domain_or_IP

假設您的 WordPress 或 Apache 配置中沒有任何錯誤,您將看到 WordPress 語言選擇的插曲頁面。

WordPress language selection

选择您的语言后,您将看到主设置页面。

选择您的WordPress网站的名称,并选择一个用户名(不建议为安全目的选择admin)。

输入您的电子邮件地址,然后选择是否希望阻止搜索引擎索引您的网站:

WordPress setup installation

当您点击前进时,您将被带到一个提示您登录的页面:

WordPress login prompt

一旦您登录,您将被带到WordPress管理仪表板:

WordPress login prompt

从这里,你可以开始定制你的新的WordPress网站,并开始发布内容. 如果这是你第一次使用WordPress,我们鼓励你探索界面,了解你的新的CMS。

<$>[警告] 警告: 根据您管理的数据库提供商,您可能需要调整数据库使用的 _SQL 模式。 SQL 模式定义了 MySQL 如何验证数据和它支持的语法,并且某些 SQL 模式可能会对 WordPress 的性能产生负面影响。

有许多SQL模式可以影响WordPress的性能,以及几种方法来禁用严格模式,所以您应该查看官方MySQL文档(https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html),以确定哪些设置最适合您的需求。

结论

通过完成本指南,您将有 WordPress 安装并准备在您的服务器上使用. 此外,您的 WordPress 安装正在动态地从您的管理 MySQL 数据库中提取帖子,页面和其他内容。

一些常见的下一步是为您的帖子选择 permalinks 设置. 此设置可以在 设置 > ** Permalinks中找到. 您也可以在 ** 外观 > ** 主题**中选择一个新主题. 一旦您开始将某些内容加载到您的网站,您也可以 配置 CDN 以加快网站的资产交付

Published At
Categories with 技术
comments powered by Disqus