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

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站

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

介绍

WordPress 是互联网上最流行的内容管理系统 (CMS) 之一,它允许用户来设置灵活的博客和网站。WordPress 是高效建立和运行网站的绝佳选择。初始设置后,WordPress 网站的几乎所有管理都可以通过其图形界面完成。

在本文中,我们将重点关注在 Ubuntu 22.04 服务器的 LEMP 堆栈(Linux、Nginx、MySQL 和 PHP)上设置 WordPress 实例。

先决条件

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

  • **在服务器上创建sudo**用户:本教程中的步骤使用具有sudo权限的非 root 用户。sudo可以参考Ubuntu 20.04 初始服务器设置教程](blog.csdn.net/qq_35241329...%25E5%2588%259B%25E5%25BB%25BA%25E5%2585%25B7%25E6%259C%2589%25E6%259D%2583%25E9%2599%2590%25E7%259A%2584%25E7%2594%25A8%25E6%2588%25B7%25EF%25BC%2588%25E6%25B3%25A8%25E6%2584%258F%25E7%2589%2588%25E6%259C%25AC%25E5%258F%25B7%25EF%25BC%258C%25E8%25BF%2599%25E9%2587%258C%25E5%258F%25AA%25E7%2594%25A8%25E4%25BB%25A5%25E5%258F%2582%25E8%2580%2583%25EF%25BC%2589%25E3%2580%2582 "https://blog.csdn.net/qq_35241329/article/details/135388646?spm=1001.2014.3001.5501)%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E6%9D%83%E9%99%90%E7%9A%84%E7%94%A8%E6%88%B7%EF%BC%88%E6%B3%A8%E6%84%8F%E7%89%88%E6%9C%AC%E5%8F%B7%EF%BC%8C%E8%BF%99%E9%87%8C%E5%8F%AA%E7%94%A8%E4%BB%A5%E5%8F%82%E8%80%83%EF%BC%89%E3%80%82")

  • 安装 LEMP 堆栈:WordPress 需要 Web 服务器、数据库和 PHP 才能正常运行。设置 LEMP 堆栈(Linux、Nginx、MySQL 和 PHP)可以满足所有这些要求。

  • 使用 SSL 保护网站

    TLS/SSL 是一种允许加密站点流量的技术,以便连接安全。设置 SSL 的方式取决于你的站点是否有域名。

    • **如果有域名,**保护站点安全的最简单方法是使用 Let's Encrypt,它提供免费、可信的证书。
    • 如果没有域并且将此配置用于测试或个人用途,则可以改用自签名证书。

完成设置后,以sudo用户身份登录到服务器以继续。

第 1 步 --- 为 WordPress 创建 MySQL 数据库和用户

WordPress 使用 MySQL 来管理和存储站点和用户信息。所以需要创建一个数据库和一个用户供 WordPress 使用。

首先,登录 MySQL 管理帐户:

bash 复制代码
sudo mysql

如果已将身份验证方法更改为使用 MySQL root 帐户的密码,请改用以下命令:

bash 复制代码
mysql -u root -p

系统将提示输入为 MySQL root 帐户设置的密码。

登录后,创建一个 WordPress 可以控制的单独数据库。可以随意命名,为了简单起见,我们将在本文中使用wordpress。可以通过输入以下内容为 WordPress 创建数据库:

bash 复制代码
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

**注意:**每个 MySQL 语句必须以分号 ( ;) 结尾。如果遇到错误,请检查以确保分号存在。

接下来,让我们创建一个单独的 MySQL 用户帐户,专门用于操作新数据库。从管理和安全的角度来看,创建单一用途的数据库和帐户是比较好的。我们将在本文中使用该名称wordpressuser- 或者你自定义一个。

在以下命令中,我们将创建一个帐户、设置密码并授予对创建的数据库的访问权限。请记住在这里选择一个强密码:

bash 复制代码
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost';

我们现在拥有一个数据库和用户帐户,每个帐户都是专为 WordPress 制作的。

数据库任务完成后,让我们输入以下命令退出 MySQL:

bash 复制代码
EXIT;

MySQL 会话将退出,返回到常规 Linux shell。

第 2 步 --- 安装附加 PHP 扩展

设置 LEMP 堆栈时,需要极少的扩展集才能使 PHP 与 MySQL 通信。WordPress 及其许多插件利用了额外的 PHP 扩展,我们将在本教程中使用更多扩展。

让我们下载并安装一些最流行的 PHP 扩展,以便与 WordPress 一起使用,输入:

bash 复制代码
sudo apt update
bash 复制代码
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

**注意:**每个 WordPress 插件都有自己的一组要求。有些可能需要安装额外的 PHP 扩展包。检查插件文档以了解其 PHP 要求。如果可用,可以按照apt上面的演示进行安装。

完成安装扩展后,重新启动 PHP-FPM 进程,以便运行的 PHP 处理器可以利用新安装的功能:

bash 复制代码
sudo systemctl restart php8.1-fpm

现在已将所需的所有 PHP 扩展安装在服务器上。

第 3 步 --- 配置 Nginx

接下来,让我们对 Nginx 服务器块文件进行一些调整。根据先决条件教程,你的站点目录中应该有一个配置文件,该文件/etc/nginx/sites-available/配置为响应服务器的域名或 IP 地址并受 TLS/SSL 证书保护。我们将在此处用作示例,但你应该在适当的情况下替换配置文件的路径。

此外,我们将在本文中使用 WordPress 安装的根目录。同样,你应该使用自己的配置中指定的 Web 根目录。

**注意:**现在可能正在使用/etc/nginx/sites-available/default默认配置(/var/www/html作为网络根目录)。如果只想在此服务器上托管一个网站,则可以使用此选项。如果没有,最好将必要的配置拆分为逻辑块,每个站点一个文件。

使用权限打开站点的服务器块文件sudo以开始:

bash 复制代码
sudo nano /etc/nginx/sites-available/wordpress

在主server块中,我们添加一些location块。

首先为发送至/favicon.ico/robots.txt 的请求创建完全匹配的位置块。

使用正则表达式位置来匹配对静态文件的任何请求。我们将再次关闭这些请求的日志记录,并将它们标记为高度可缓存,因为这些资源通常是昂贵的服务资源。可以调整此静态文件列表以包含网站可能使用的任何其他文件扩展名:

/etc/nginx/sites-available/wordpress

ini 复制代码
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 错误作为默认选项。

这应该看起来像这样:

/etc/nginx/sites-available/wordpress

swift 复制代码
server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

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

现在,让我们通过键入以下内容来检查配置是否存在语法错误:

bash 复制代码
sudo nginx -t

如果没有报告错误,请通过键入以下内容重新加载 Nginx:

bash 复制代码
sudo systemctl reload nginx

接下来,让我们下载并设置 WordPress。

第 4 步 --- 下载 WordPress

现在服务器软件已配置完毕,让我们下载并设置 WordPress。出于安全原因,始终建议直接从项目网站获取最新版本的 WordPress。

更改为可写目录,然后通过键入以下内容下载压缩版本:

bash 复制代码
cd /tmp

这会将目录更改为临时文件夹。然后,输入以下命令以压缩文件形式下载最新版本的 WordPress:

bash 复制代码
curl -LO https://wordpress.org/latest.tar.gz

注意:-LO标志用于直接获取压缩文件的源。-L确保在重定向的情况下成功获取文件,并将-O远程文件的输出写入具有相同名称的本地文件。

解压压缩文件以创建 WordPress 目录结构:

bash 复制代码
tar xzvf latest.tar.gz

现在将立即将这些文件移动到我们的文档根目录中,但在此之前,让我们将示例配置文件复制到 WordPress 实际读取的文件名:

bash 复制代码
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

现在,让我们将该目录的全部内容复制到文档根目录中。我们使用该-a标志来确保维护我们的权限,并在源目录末尾使用一个点来指示应该复制目录中的所有内容(包括隐藏文件):

bash 复制代码
sudo cp -a /tmp/wordpress/. /var/www/<^>your_domain/wordpress

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

bash 复制代码
sudo chown -R www-data:www-data /var/www/your_domain/wordpress

文件现在位于服务器的文档根目录中并具有正确的所有权,但仍然需要完成一些额外的配置。

第 5 步 --- 设置 WordPress 配置文件

接下来,让我们对 WordPress 主配置文件进行一些更改。

打开文件时,首先调整一些密钥来为我们的安装提供一定的安全性。WordPress 为这些值提供了一个安全的生成器。这些仅在内部使用,因此在这里拥有复杂、安全的值不会损害可用性。

要从 WordPress 密钥生成器获取安全值,请输入:

bash 复制代码
curl -s https://api.wordpress.org/secret-key/1.1/salt/

现在将得到如下所示的唯一值:

警告:每次都请求唯一的值,这一点很重要。不要复制下面显示的值!

sql 复制代码
Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES  07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

我们可以将这些配置行直接粘贴到配置文件中以设置安全密钥。复制你现在收到的输出。

现在,打开 WordPress 配置文件:

bash 复制代码
sudo nano /var/www/your_domain/wordpress/wp-config.php

找到包含这些设置的虚拟值的部分。它看起来像这样:

/var/www/<^>your_domain<^>/wordpress/wp-config.php

sql 复制代码
. . .

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');

. . .

删除这些行并粘贴从命令行复制的值:

/var/www/<^>your_domain<^>/wordpress/wp-config.php

sql 复制代码
. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

接下来,我们修改文件开头的一些数据库连接设置。调整 MySQL 中配置的数据库名称、数据库用户和关联密码。

下来设置 WordPress 用于写入文件系统的方法。由于前面已授予 Web 服务器在需要的位置写入的权限,因此可以显式地将文件系统方法设置为"direct"。未能使用我们当前的设置进行此设置将导致当我们执行某些操作时 WordPress 提示输入 FTP 凭据。将此设置添加到数据库连接设置下方或文件中的任何其他位置:

/var/www/<^>your_domain<^>/wordpress/wp-config.php

sql 复制代码
. . .

define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpressuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

. . .

define( 'FS_METHOD', 'direct' );

完成后保存并关闭文件。

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

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

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

bash 复制代码
http://server_domain_or_IP/wordpress

选择要使用的语言:

接下来,将来到主设置页面。

为你的 WordPress 站点选择一个名称并选择一个用户名(出于安全考虑,建议不要选择"admin"之类的名称)。自动生成强密码。保存此密码或选择其他强密码。

输入电子邮件地址并选择是否要阻止搜索引擎对网站建立索引:

当点击前进时,进入一个提示您登录的页面:

登录后,将进入 WordPress 管理仪表板:

结论

WordPress 应该已安装并可以使用!一些常见的后续步骤是为你的帖子选择永久链接设置(可以在 中找到Settings > Permalinks)或选择一个新主题(在 中Appearance > Themes)。

相关推荐
gqkmiss10 分钟前
Chrome 浏览器 131 版本开发者工具(DevTools)更新内容
前端·chrome·浏览器·chrome devtools
Summer不秃15 分钟前
Flutter之使用mqtt进行连接和信息传输的使用案例
前端·flutter
旭日猎鹰19 分钟前
Flutter踩坑记录(二)-- GestureDetector+Expanded点击无效果
前端·javascript·flutter
Viktor_Ye26 分钟前
高效集成易快报与金蝶应付单的方案
java·前端·数据库
hummhumm28 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
乐闻x1 小时前
Vue.js 性能优化指南:掌握 keep-alive 的使用技巧
前端·vue.js·性能优化
一条晒干的咸魚1 小时前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
Amd7941 小时前
Nuxt.js 应用中的 webpack:compiled 事件钩子
前端·webpack·开发·编译·nuxt.js·事件·钩子
生椰拿铁You1 小时前
09 —— Webpack搭建开发环境
前端·webpack·node.js
狸克先生2 小时前
如何用AI写小说(二):Gradio 超简单的网页前端交互
前端·人工智能·chatgpt·交互