在 Ubuntu 18.04 上使用 Nginx 安装 WordPress
WordPress 是最受欢迎的开源内容管理系统 (CMS) 之一,与 Drupal 或 Joomla 等其他 CMS 相比,其市场份额高达 60%。 WordPress 可用于开发任何类型的网站,无论是博客、小型企业还是大型企业。 凭借其免费和高级插件和主题,可以快速扩展 WordPress 网站以提供高级功能。 还可以从头开始开发自定义主题和插件,将独特的功能嵌入到任何 WordPress 网站。 在本篇文章中,我们将介绍使用 LEMP 堆栈安装 WordPress CMS,即在 Ubuntu 18.04 中使用 NGINX 作为 Web 服务器。
先决条件
- 我们可以使用 root 或启用 sudo 的用户在 Ubuntu 18.04 服务器中打开 SSH 会话。
- 指向 WordPress 安装的注册域名或子域。
- 指向您服务器 IP 地址的域 DNS A 记录。
本教程需要使用域名。 每当我们看到 SUBDOMAIN
、DOMAIN
或 TLD
变量时,请将它们替换为大家自己的域名值。
更新你的 Ubuntu 18.04
在开始安装 NGINX 之前,始终建议大家将 Ubuntu 18.04 升级到最新版本。 以下 apt-get
命令将为我们完成。
$ apt-get update
$ apt-get upgrade
第一个命令将更新可用软件包列表及其版本,第二个命令将实际安装我们拥有的软件包的较新版本。 完成系统升级后,使用以下命令检查 Ubuntu 系统的发行版本。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
在 Ubuntu 上使用 NGINX 安装 WordPress
按照以下步骤在 Ubuntu 服务器上安装带有 NGINX 的 WordPress。
步骤一、安装 NGINX
NGINX 在 Ubuntu 的默认存储库中可用,并且可以使用如下所示的单行命令安装。
$ apt-get install nginx
更详细的 nginx 安装教程,可以参考我们的 《如何在 Ubuntu 20.04 上安装 Nginx?-迹忆客》。
步骤二、安装 MariaDB
MariaDB 在 Ubuntu 的默认存储库中可用。 也可以从单独的 MariaDB 存储库安装它。 但我们将坚持从 Ubuntu 的默认存储库安装它。 从终端中使用以下命令以安装它,并且我们可以选择运行 mysql_secure_installation
来保证使其安全。
$ apt-get install mariadb-server
$ systemctl enable mariadb.service
$ mysql_secure_installation
MariaDB root 用户的默认密码为空。 要更新 root 用户的密码,请获取 MySQL 提示并通过从 MySQL shell 发出以下命令来更新密码。
$ mysql -u root -p
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user SET PASSWORD=PASSWORD("Passw0rd!") WHERE USER='root';
MariaDB 在 Ubuntu 18.04 系统中安装完成。 现在继续在下一步中安装 PHP。
步骤三、安装 PHP
最新版本的 PHP (7.2) 在 Ubuntu 18.04 的存储库中可用,并且是默认的安装候选版本,因此只需在终端中运行以下命令即可安装它。
$ apt-get install php7.2 php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
除了安装 php7.2 之外,上面的 apt-get
命令还安装了一些其他的包以及 MySQL、XML、Curl 和 GD 包,并确保我们的 WordPress 站点可以与数据库交互,支持 XMLRPC,并且还可以裁剪 并自动调整图像大小。 此外,NGINX 需要 php-fpm(快速进程管理器)包来处理 WordPress 安装的 PHP 页面。 请记住,一旦 PHP 安装结束,FPM 服务将自动运行。
步骤四、创建wordpress数据库
在大家的服务器中安装和配置 MariaDB 后,创建一个用户和一个数据库,专门用于 WordPress 安装。 为此,请使用 mysql -u root -p
命令登录 MariaDB 服务器并完成如下所述的步骤。
$ mysql -u root -p
Enter password:
MariaDB [mysql]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [mysql]> GRANT ALL ON wordpress_db.* TO 'wpuser'@'localhost' IDENTIFIED BY 'Passw0rd!' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
不要惊慌,因为没有创建“wpuser”数据库用户的命令。 它将使用上面的 GRANT 命令自动创建。 我最近了解到这一点,并认为这会让阅读本教程的任何人感到惊讶。 :)
步骤五、为 WordPress 配置 NGINX
现在让我们继续配置 NGINX 服务器块来为我们的 WordPress 域提供服务。 首先,为我们的 WordPress 安装创建根文件夹。
$ mkdir -p /var/www/html/wordpress/public_html
要为我们的 WordPress 域创建 NGINX 服务器块,请进到 /etc/nginx/sites-available 文件夹。 这是 NGINX 服务器块的默认位置。 使用自己喜欢的编辑器为 NGINX 服务器块创建一个配置文件,然后像下面这样编辑它。
$ cd /etc/nginx/sites-available
$ cat wordpress.conf
内容如下
server {
listen 80;
root /var/www/html/wordpress/public_html;
index index.php index.html;
server_name SUBDOMAIN.DOMAIN.TLD;
access_log /var/log/nginx/SUBDOMAIN.access.log;
error_log /var/log/nginx/SUBDOMAIN.error.log;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
使用以下命令检查上述配置文件的正确性:
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
要激活 Server 块,请在 /etc/nginx/sites-enabled 文件夹中创建上述配置文件的符号链接。
$ cd /etc/nginx/sites-enabled
$ ln -s ../sites-available/wordpress.conf .
重新加载 NGINX 以应用新的 WordPress 域设置。
$ systemctl reload nginx
步骤六、下载和配置 WordPress
在此步骤中,使用 wget 下载存档的 WordPress 文件并将其解压缩到我们在上一步中创建的 WordPress 安装的根目录。 要完成它,请从终端运行以下命令。
$ cd /var/www/html/wordpress/public_html
$ wget https://wordpress.org/latest.tar.gz
$ tar -zxvf latest.tar.gz
$ mv wordpress/* .
$ rm -rf wordpress
更改所有权并对提取的 WordPress 文件和文件夹应用正确的权限。 为此,请从终端使用以下命令。
$ cd /var/www/html/wordpress/public_html
$ chown -R www-data:www-data *
$ chmod -R 755 *
现在在 WordPress 配置文件中提供数据库名称、数据库用户和密码,以便它可以连接到我们之前创建的 MariaDB 数据库。 默认情况下,WordPress 提供了一个示例配置文件,我们将使用它来创建我们自己的配置文件。 为此,首先,将示例 WordPress 配置文件重命名为 wp-config.php 并使用您自己喜欢的编辑器进行编辑。
$ cd /var/www/html/wordpress/public_html
$ mv wp-config-sample.php wp-config.php
$ vi wp-config.php
部分内容如下
...
...
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'Passw0rd!');
...
...

为了保护大家的 WordPress 站点,请在上述 WordPress 配置文件中添加安全密钥,就在数据库配置选项之后,通过此链接 生成它。

我们现在已准备好使用自己喜欢的浏览器安装 WordPress 网站了。
步骤七、安装WordPress
要完成 WordPress 的安装,请将我们最喜欢的 Web 浏览器指向 SUBDOMAIN.DOMAIN.TLD
并按照如下所述的步骤进行操作
安装程序将提示我们选择一种语言。 选择一种语言,然后单击“继续”。

现在提供站点信息,例如站点标题、用户名、密码、电子邮件,然后单击“安装 WordPress”按钮。

我们已完成安装 WordPress 网站。 单击“Log In”来登录控制面板并继续为我们的站点配置插件和主题。

提供我们之前输入的用户名和密码进行首次登录。

恭喜! 你的 WordPress 网站已安装并准备好根据自己的要求进行自定义。
本示例中点击左上角的 jiyik.com 可以跳转到网站的页面

总结
WordPress 是最流行的 CMS,我们学习了如何在 Ubuntu 服务器上使用 NGINX 安装它。 现在可以进一步使用它创建自己的网站。
相关文章
Nginx 和 uWISG 服务器之间如何配合工作的
发布时间:2023/03/29 浏览次数:232 分类:网络
-
Nginx和uWISG是两个常用的服务器软件,它们可以协同工作以提供更加稳定和高效的网络服务。本文将详细介绍Nginx和uWISG之间的配合工作原理,以及如何配置它们以实现最佳性能。 一、
设置 PHP-FPM 和 Nginx Docker 容器
发布时间:2023/03/29 浏览次数:191 分类:PHP
-
在本篇文章中,我们将讨论在 Docker 上进行本地开发时如何设置 PHP、PHP-FPM 和 NGINX 容器。
WordPress 4.1.2 及以下版本存储型 XSS 漏洞
发布时间:2023/01/06 浏览次数:110 分类:学无止境
-
WordPress 4.1.2 于 2015 年 4 月 21 日可用。WordPress 4.1.1 及更早版本受到严重的跨站点脚本漏洞的影响,该漏洞可能使匿名用户破坏站点(WP 博客)。 简介:MySQL严格模式 去年年初,我正在阅
Nginx 运行但是不提供站点服务
发布时间:2022/05/15 浏览次数:223 分类:网络
-
我们最近在一台新机器上安装了 nginx 版本 1.17。 在 sites-available`中创建的配置被符号链接到 `sites-enabled` ,但 nginx 没有为任何域名提供服务。
Nginx 如何修复 Reponse Status 0 Worker Process Exited on Signal 11
发布时间:2022/05/14 浏览次数:312 分类:网络
-
实际上,让我们首先澄清一下:HTTP 没有状态码 0(零)。 问题是 nginx 工作进程在处理请求时死亡,因此连接中断,导致没有任何响应数据的错误。
Nginx 如何修复 Unknown "connection_upgrade" Variable 错误
发布时间:2022/03/28 浏览次数:7640 分类:网络
-
在使用 Websockets 或使用 nginx 配置服务器时,我们可能会在 nginx 配置中遇到 `$connection_upgrade` 变量。 $connection_upgrade 变量默认不可用。 但是,建议在反向代理设置中定义和使用它。
Nginx - 如何修复 “ssl” Directive Is Deprecated, Use “listen … ssl” 错
发布时间:2022/03/23 浏览次数:258 分类:网络
-
本篇文章介绍如何修复 nginx 的 “ ‘ssl’ Directive Is Deprecated, Use ‘listen … ssl’ ” 错误。Nginx 使用类似 YAML 的定义格式来创建配置。 这种格式随着时间的推移通过添加、删除或更改关键
在 Ubuntu 20.04 如何使用 Let's Encrypt 结合 Nginx 配置 https
发布时间:2022/02/03 浏览次数:650 分类:操作系统
-
在本篇文章中,我们介绍了安装了 Let's Encrypt 客户端 certbot,为我们的域名下载 SSL 证书,配置 Nginx 来使用这些证书,并设置自动证书更新。