如何在 Ubuntu 22.04 上使用 LEMP 安装 WordPress

介绍

WordPress 是互联网上最受欢迎的内容管理系统(CMS)之一,允许用户使用 MySQL 后端创建灵活的博客和网站。WordPress 是让网站高效运行的绝佳选择。在初始设置后,几乎所有 WordPress 网站的管理都可以通过其图形界面进行。

在本教程中,您将专注于在LEMP堆栈(Linux, Nginx,MySQL和PHP)上设置一个WordPress实例,用于Ubuntu 22.04服务器。

您也可以使用 DigitalOcean 的管理Wordpress服务

前提条件

为了完成本教程,您将需要访问Ubuntu 22.04服务器. 要在您的服务器上成功安装WordPress与LEMP,您还需要在开始本教程之前执行以下任务:

  • 在您的服务器上创建一个sudo用户:本教程中的步骤是使用具有sudo特权的非根用户。您可以根据我们的 Ubuntu 22.04 初始服务器设置教程创建一个具有sudo特权的用户。
  • 安装一个LEMP堆栈:WordPress将需要一个Web服务器,一个数据库和PHP才能正常运作。设置一个LEMP堆栈(Linux, Nginx,MySQL和PHP)满足所有这些要求。遵循 本教程来安装和配置该软件。

<$>[info] 而不是自己设置这些组件,您可以快速提供已经安装了LEMP堆栈的Ubuntu 22.04服务器(https://marketplace.digitalocean.com/apps/lemp)。

尽管如此,请注意,本教程仍然假定您在您的服务器上配置了一个管理sudo用户和一个 Nginx 服务器块。即使有一个服务器配备了 LEMP 1-click 应用程序,您还需要遵循我们的 Ubuntu 22.04 初始服务器设置教程步骤 1, 2, 3,和 5。您还需要完成我们在 Ubuntu 22.04 上安装 LEMP Stack 的 步骤 4的指南,以 配置 Nginx 服务器块并配置 Nginx 使用 PHP 处理器 <$>

  • 安全您的网站使用SSL:WordPress提供动态内容,并处理用户身份验证和授权。TLS/SSL是允许您加密您的网站流量的技术,以便您的连接是安全的。您设置SSL的方式将取决于您是否拥有您的网站的域名。
  • **如果您有域名,**最简单的方式来保护您的网站是使用Let's Encrypt,它提供了免费的,可信赖的证书。 遵循我们的 Let's Encrypt 指南为 Nginx为此设置。
  • **如果您没有域名,并且您正在使用此配置或测试个人用途,您可以使用自签证书。 这提供了相同类型的加密,但没有域验证。

当你完成安装时,登录你的服务器作为sudo用户继续。

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

WordPress 使用 MySQL 来管理和存储网站和用户信息. 虽然您已经安装了 MySQL,但让我们为 WordPress 创建一个数据库和用户来使用。

如果 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用户帐户,我们将专门使用它来运行我们的新数据库。创建单一的数据库和帐户从管理和安全的角度来说是一个好主意。

在以下命令中,您将创建一个帐户,设置密码,并授予您创建的数据库访问权限。

1CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
2
3GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost';

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

完成数据库任务后,让我们通过键入离开MySQL:

1EXIT;

MySQL 会话将结束,您将返回正常的 Linux 壳。

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

当设置LEMP堆栈时,需要非常少的一组扩展来让PHP与MySQL进行通信。WordPress及其许多插件利用额外的PHP扩展,您将在本教程中使用更多。

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

1sudo apt update
1sudo 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 php8.1-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}

在现有的位置/区块中,让我们调整试_files列表。评论默认设置,通过用英镑符号(#)预先设置行,然后添加突出的行。

这应该看起来像这样的东西:

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

这将您的目录变为临时文件夹,然后输入以下命令以在压缩文件中下载最新版本的WordPress:

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

<$>[注] 注: -LO 旗帜被用来直接到压缩文件的来源。 -L 确保在重定向的情况下获取文件成功,而 -O 用具有相同名称的本地文件写出我们的远程文件的输出。

提取压缩文件来创建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/your_domain/wordpress

现在我们的文件已经存在,您将将所有权分配给 www-data的用户和组. 这是 Nginx 运行的用户和组, Nginx 将需要能够阅读和写 WordPress 文件,以便为网站提供服务并执行自动更新:

1sudo chown -R www-data:www-data /var/www/your_domain/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/your_domain/wordpress/wp-config.php

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

 1[label /var/www/your_domain/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/your_domain/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/your_domain/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 界面完成安装

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

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

1http://server_domain_or_IP/wordpress

选择您想要使用的语言:

WordPress language selection

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

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

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

WordPress setup installation

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

WordPress login prompt

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

WordPress login prompt

结论

WordPress 应该安装并准备好使用! 下一步的一些常见步骤是为您的帖子选择 permalinks 设置(可以在设置 > Permalinks中找到)或选择一个新主题(在外观 > 主题中)。

<$>[info] 如果您正在寻找一个单击的解决方案来安装WordPress Droplet,请了解更多关于 WordPress One-Click App

Published At
Categories with 技术
comments powered by Disqus