如何使用 LAMP 栈在 Ubuntu 20.04 上安装 WordPress

介绍

WordPress 是当今互联网上创建网站和博客的极为受欢迎的开源技术,由使用内容管理系统(CMS)的所有网站的 63% 使用,WordPress 网站占目前在线网站的 36%。

有许多不同的方法来访问WordPress,一些设置过程比其他更复杂。本教程是为那些希望通过命令行在未经管理的云服务器上安装和管理Wordpress实例的人设计的。

<$>[info] 如果你想访问一个已准备好的WordPress安装, DigitalOcean Marketplace提供一个单击的应用程序让你开始使用WordPress通过安装时旋转你的服务器。

作为开源软件,WordPress可以免费下载和安装,但要在网络上可用,您可能需要购买云基础设施和域名。

本教程将使用LAMP(L inux, A pache, M ySQL和 P HP)堆栈,这是支持WordPress的服务器架构的一个选项,通过提供Linux操作系统,ApacheWeb服务器,MySQL数据库和PHP编程语言。

前提条件

为了完成本教程,您需要访问Ubuntu 20.04服务器,并在开始本指南之前需要完成以下步骤:

  • 联合国 通过遵循我们的Ubuntu 20.04 初始服务器设置指南来设置您的服务器,并确保您拥有一个非root `sudo' 用户。
  • ** 安装一个 LAMP 堆栈** ,遵循我们的[LAMP 指南(https://andsky.com/tech/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-20-04)安装和配置此软件.
  • 保护您的网站** : 单词 Press收录用户输入并存储用户数据,因此它必须拥有一层安全. TLS/SSL 是允许您从您的网站加密流量的技术, 这样您和您的用户的连接是安全的 。 这里有两个选项可供您满足此要求 :
  • ** 如果您有域名... ** 您可以使用 Let 's Encrypt来保护您的站点, 提供免费的, 信任的证书 。 遵循我们的 Apache 加密指南( https://andsky.com/tech/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04 ) 设置此功能 。
  • ** 如果您没有域名...** 而您只是使用此配置进行测试或个人使用,您可以使用自签名的证书取而代之. 这提供了同类型的加密,但没有域验证. 遵循我们[自签的 SSL 指南 Apache (https://andsky.com/tech/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-18-04) 设置 。 (英语)

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

步骤 1 — 创建一个MySQL数据库和用户为WordPress

我們將採取的第一步是準備。WordPress使用MySQL來管理和儲存網站和用戶資訊.我們已經安裝了MySQL,但我們需要為WordPress建立一個資料庫和使用者。

要开始,请通过发出此命令登录 MySQL root (管理) 帐户(请注意,这不是您的服务器的 root 用户):

1mysql -u root -p

您将被提示为您在安装软件时为 MySQL 根帐户设置的密码。

<$>[注意] 注意 :如果您无法通过 root 访问您的 MySQL 数据库,作为一个sudo用户,您可以通过登录到数据库来更新您的 root 用户密码:

1sudo mysql -u root

一旦你收到MySQL提示,你可以更新根用户的密码. 在这里,用你所选择的强大的密码代替new_password

1ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

您现在可以输入EXIT;并通过以下命令通过密码重新登录数据库:

1mysql -u root -p

美元

在数据库中,我们可以创建一个专属的WordPress数据库来控制它,你可以称之为任何你想要的,但我们将在本指南中使用名称 wordpress

1CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

接下来,我们将创建一个单独的MySQL用户帐户,我们将专门用于运营我们的新数据库。创建特定的数据库和帐户可以从管理和安全的角度支持我们。

我们将创建此帐户,设置密码,并授予访问我们创建的数据库。我们可以通过键入以下命令来做到这一点。

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

接下来,让数据库知道我们的wordpress用户应该可以完全访问我们设置的数据库:

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

你现在有一个数据库和用户帐户,每一个都是专门为WordPress创建的,我们需要清除权限,以便当前的MySQL实例知道我们最近所做的更改:

1FLUSH PRIVILEGES;

通过键入离开MySQL:

1EXIT;

在下一步,我们将为我们的服务器下载PHP扩展程序,为WordPress插件奠定一些基础。

第2步:安装额外的PHP扩展

当我们设置LAMP堆栈时,我们只需要一组非常小的扩展来让PHP与MySQL进行通信。

我们可以通过键入下载并安装一些最流行的PHP扩展来使用WordPress:

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

这将为在我们的WordPress网站上安装额外的插件奠定基础。

<$>[注] 注: 每个WordPress插件都有自己的要求。有些可能需要安装额外的PHP包。检查您的插件文档以了解其PHP要求。

我们需要重新启动Apache来加载这些新扩展,我们将在下一节对Apache进行更多的配置,所以您可以等到那时,或者现在重新启动以完成PHP扩展过程。

1sudo systemctl restart apache2

步骤 3 — 调整 Apache 配置以允许.htaccess 重写和重写

接下来,我们将对我们的Apache配置做一些小调整,基于前提教程,您应该在/etc/apache2/sites-available/目录中为您的网站提供配置文件。

在本指南中,我们将使用/etc/apache2/sites-available/wordpress.conf作为一个示例,但您应该在适当的情况下更换到您的配置文件的路径。 此外,我们将使用/var/www/wordpress作为我们的WordPress安装的根目录。 您应该使用您自己的配置中指定的Web根。 如果您遵循我们的LAMP教程(https://andsky.com/tech/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-20-04),这可能是您的域名而不是WordPress在这两种情况下。

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

鉴定了我们的路径,我们可以继续使用.htaccess,以便Apache可以在每个目录的基础上处理配置更改。

允许.htaccess 转移

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

使用像 nano 这样的文本编辑器打开您的网站的 Apache 配置文件。

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

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

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

完成后,保存并关闭文件. 在 nano 中,您可以通过同时按CTRLX,然后按Y,然后按ENTER

允许重写模块

接下来,我们可以启用mod_rewrite,这样我们就可以利用WordPress的永久链接功能:

1sudo a2enmod rewrite

这允许您为您的帖子提供更多可读的人际连接,例如以下两个例子:

1http://example.com/2012/post-name/
2http://example.com/2012/12/30/post-name

a2enmod命令呼叫一个启用 Apache 配置中指定的模块的脚本。

允许变化

在我们实施所做的更改之前,请通过运行下面的测试来确保我们没有做任何语法错误。

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

如果你想删除顶部行,只需将ServerName指令添加到你的主要(全球)Apache配置文件在/etc/apache2/apache2.confServerName可以是你的服务器的域名或IP地址,但这只是一个消息,不会影响你的网站的功能。

重新启动Apache以实现更改,即使您在本教程中早些时候重新启动,也请确保现在重新启动。

1sudo systemctl restart apache2

接下来,我们将下载并设置WordPress本身。

第4步:下载WordPress

现在我们的服务器软件已配置,我们可以下载并设置WordPress,特别是出于安全原因,我们建议从他们的网站上获取最新的WordPress版本。

转换为可编写的目录(我们建议一个临时的目录,如 `/tmp')并下载压缩版本。

1cd /tmp
2curl -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/wordpress

确保您用您在服务器上设置的目录取代 /var/www/wordpress 目录。

步骤 5 – 配置 WordPress 目录

在我们进行基于Web的WordPress设置之前,我们需要调整我们的WordPress目录中的某些项目。

调整所有权和许可

我们需要完成的一个重要步骤是设置合理的文件权限和所有权。

首先,我们将把所有文件的所有权交给 www-data 用户和组,这是Apache Web 服务器运行的用户,Apache 将需要能够阅读和写 WordPress 文件,以便为网站提供服务并执行自动更新。

使用chown命令更新所有权,允许您更改文件所有权. 请确保指向您的服务器的相关目录。

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

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

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

这些权限应该让您有效地与WordPress合作,但请注意,一些插件和程序可能需要额外调整。

设置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

查找包含这些设置示例值的部分。

 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服务器允许写到它需要的地方,我们可以明确设置文件系统的方法为直接

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

 1[label /var/www/wordpress/wp-config.php]
 2. . .
 3
 4// ** MySQL settings - You can get this info from your web host ** //
 5/** The name of the database for WordPress */
 6define( 'DB_NAME', 'wordpress' );
 7
 8/** MySQL database username */
 9define( 'DB_USER', 'wordpressuser' );
10
11/** MySQL database password */
12define( 'DB_PASSWORD', 'password' );
13
14/** MySQL hostname */
15define( 'DB_HOST', 'localhost' );
16
17/** Database Charset to use in creating database tables. */
18define( 'DB_CHARSET', 'utf8' );
19
20/** The Database Collate type. Don't change this if in doubt. */
21define( 'DB_COLLATE', '' );
22
23. . .
24
25define('FS_METHOD', 'direct');

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

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

现在,服务器配置已经完成,我们可以通过Web界面完成安装。

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

1https://server_domain_or_IP

选择您想要使用的语言:

WordPress language selection

接下来,您将进入主设置页面。

选择您的WordPress网站的名称,并选择一个用户名. 建议选择一些独特的东西,并避免安全目的的常见用户名admin。 自动生成一个强大的密码。 保存这个密码或选择一个替代的强密码。

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

WordPress setup installation

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

WordPress login prompt

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

WordPress login prompt

在这一点上,你可以开始设计你的WordPress网站!如果这是你第一次使用WordPress,探索界面,了解你的新的CMS。

结论

恭喜您,WordPress已安装并准备好使用!

在这一点上,你可能想开始做以下的事情:

  • 选择 WordPress 帖子的 permalinks 设置,可以在设置 > 永久链接中找到。
  • 外观 > 主题中选择一个新主题。
  • 插件 > 添加新下安装新插件来增加您的网站的功能。

您可以找到其他资源来安装WordPress的替代方法,了解如何在不同的服务器发行版上安装WordPress,自动化您的WordPress安装,并通过检查我们的WordPress社区标签来扩展您的WordPress网站。

Published At
Categories with 技术
comments powered by Disqus