Ubuntu22.04安装WordPress教程(利用nginx环境和MariaDB数据库,安装使用WordPress)

环境:ubunutu22.04.2LTS

  • 利用nginx环境和MariaDB数据库,安装使用WordPress

前置条件

本教程需要已经在 Ubuntu 20.04 上设置了 LEMP 堆栈。如果没有,请查看以下教程。
-如何在ubuntu22.04上安装 LEMP堆栈(Nginx,MairaDB,PHP)
完成缺省的安装后,请返回此处继续阅读。

第 1 步:下载 WordPress

更新现有软件

sudo apt update && sudo apt upgrade

在终端中,键入 wget 命令,输入链接 ,下载wordpress

wget https://wordpress.org/latest.zip

随后使用以下命令解压缩下载的wordpress zip文档

sudo apt install unzip
sudo mkdir -p /usr/share/nginx
sudo unzip latest.zip -d /usr/share/nginx/

文档将被提取到 /usr/share/nginx/ 目录中,并创建一个新目录( /usr/share/nginx/wordpress )

第 2 步:为 WordPress 网站创建数据库和用户

使用以下命令以 root 身份登录 MariaDB shell。

sudo mariadb -u root

登录后,使用以下命令为 WordPress 创建数据库。

create database wordpress;

然后输入以下命令为 WordPress 创建数据库用户。此命令还向用户授予 WordPress 数据库的所有权限。将 用户名密码 替换为你自己要设置的用户名和密码。

grant all privileges on wordpress.* to 用户名@localhost identified by ‘密码’;

刷新权限表以使更改生效,然后退出 MariaDB shell。

flush privileges;
exit;

注:上述代码指令部分全大写或全小写

第 3 步:配置 WordPress

转到WordPress 所在目录。

cd /usr/share/nginx/wordpress/

复制示例配置文件并将其重命名为 :wp-config.php

sudo cp wp-config-sample.php wp-config.php

现在使用文本编辑器(如 vim)编辑新的配置文件。

sudo vim wp-config.php

找到以下行,并将下方中文文本替换为您在上一步中创建的数据库名称、用户名和密码。

/** The name of the database for WordPress */
define('DB_NAME', '这里填你自己创建的数据库名称');

/** MySQL database username */
define('DB_USER', '这里是你自己创建的用户名');

/** MySQL database password */
define('DB_PASSWORD', '这里是你自己设置的密码');

我们还需要使用以下命令将 Nginx 用户设置为 WordPress 站点目录的所有者。

sudo chown www-data:www-data /usr/share/nginx/wordpress/ -R

第 4 步:为 WordPress 创建 Nginx 服务器块

在目录中创建服务器块文件

sudo vim /etc/nginx/conf.d/wordpress.conf

将以下文本放入文件中

server {
  listen 80;
  listen [::]:80;
  server_name www.wordpress wordpress;
  root /usr/share/nginx/wordpress/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

   location ~ ^/wp-json/ {
     rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;
   }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  client_max_body_size 20M;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_buffers 1024 4k;
    fastcgi_buffer_size 128k;

    # Add headers to serve security related headers
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header X-Frame-Options "SAMEORIGIN";
  }

  #enable gzip compression
  gzip on;
  gzip_vary on;
  gzip_min_length 1000;
  gzip_comp_level 5;
  gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
  gzip_proxied any;

  # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
 }

保存并关闭文件。然后测试 Nginx 配置。

sudo nginx -t

如果测试成功,请重新加载 Nginx。

sudo systemctl reload nginx

在浏览器地址栏中如下输入。

localhost/wp-admin/install.php

请添加图片描述
如果未显示安装向导,则可能需要安装一些 PHP 扩展。

sudo apt install php-imagick php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-json php-cli php-curl php-zip

然后重新加载 PHP-FPM 和 Nginx服务。现在应该显示向导。

sudo systemctl reload php8.1-fpm nginx

第5步:使用安装向导完成安装

如图填写信息创建一个管理员帐户,然后单击页面左下角“安装 WordPress”按钮。
在这里插入图片描述

现在你的新 WordPress 网站已安装完毕。
在这里插入图片描述

第6步:启用 HTTPS

要加密 HTTP 流量,我们可以通过安装 Let’s Encrypt 颁发的免费 TLS 证书来启用 HTTPS。运行以下命令以在 Ubuntu 22.04上安装 Let’s Encrypt 客户端 (certbot)。

sudo apt install certbot python3-certbot-nginx

并运行此命令以获取并安装 TLS 证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d domainname1,domainname2

  • –nginx:使用 Nginx 插件。
  • –agree-tos:同意服务条款。
  • –redirect:强制 HTTPS by 301 重定向。
  • –hsts:将 Strict-Transport-Security 标头添加到每个 HTTP 响应中。强制浏览器始终对域使用 TLS。防御 SSL/TLS 剥离。
  • –staple-ocsp:启用 OCSP 装订。有效的 OCSP 响应将装订到服务器在 TLS 期间提供的证书中。
  • –email:用于注册和恢复联系人的电子邮件。
  • -d 后跟一个域名列表,用逗号分隔。最多可以添加 100 个域名。

重新加载WordPress设置向导,即可看到HTTP自动重定向到HTTPS连接。

如何将 www 重定向到非 www(反之亦然)

我们已经启用了将 HTTP 重定向到 HTTPS,剩下要做的就是将 www 重定向到非 www,反之亦然。这很容易。只需转到 WordPress 仪表板>设置>常规,然后在 WordPress 地址和站点地址设置您的首选版本(www 或非 www)。请务必包含前缀。https://
在这里插入图片描述

常见问题Q&A:

待补充