安装PHP及相关扩展

使用ssh或其他方式连接服务器,执行以下命令:

sudo apt update
# 安装 PHP-FPM 和 WordPress 需要的常用扩展
sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-xmlrpc php8.2-zip php8.2-intl -y

安装完成后,PHP-FPM服务会自启动,可以通sudo systemctl status php8.2-fpm来查看状态。

创建数据库和用户

接下来,登陆数据库为wordpress创建专用的数据库以及用户,在这里,选择的是mysql,安装教程可以从网上查询。

登陆到MySql:

sudo mysql -u root -p

在MySql提示符下,一次执行以下SQL命令,可以将数据库、用户、密码替换为你自己喜欢的。

-- 创建一个名为 wordpress_db 的新数据库
CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建一个新用户 wp_user,并设置一个强密码
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'PASSWARD';
-- 赋予该用户对 wordpress_db 数据库的所有权限
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
EXIT;

下载并配置Wordpress

进入临时目录,下载并解压Wordpress:

cd /tmp 
wget https://cn.wordpress.org/wordpress-6.8.2-zh_CN.tar.gz
tar -zxvf wordpress-xxx.tar.gz

这里选择中文版的,否则后续安装完成后设置稍有麻烦。

将解压后的wordpress复制到网站根目录,通常网站存放/var/www 下,可以为自己喜欢的博客创建一个新目录,并且将wordpress移动过去,这里示范blog ,可以替换为域名或喜欢的名字:

sudo mkdir -p /var/www/blog
sudo cp -r /tmp/wordpress/* /var/www/blog/

wp-config.php 文件,wordpress的核心配置文件是这个,从示例文件来创建,并且填入数据库信息:

# 切换到网站根目录
cd /var/www/blog/

# 复制示例配置文件
sudo cp wp-config-sample.php wp-config.php

编辑配置文件:

sudo vim wp-config.php

在文件中找到以下部分,并将其替换为你在步骤二中创建的数据库信息:

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress_db' ); // <-- 替换为你的数据库名

/** Database username */
define( 'DB_USER', 'wp_user' ); // <-- 替换为你的用户名

/** Database password */
define( 'DB_PASSWORD', '在此处输入强密码' ); // <-- 替换为你的密码

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

向下滚动文件,找到 "Authentication Unique Keys and Salts" 部分。为了安全,你需要用随机生成的值替换掉这里的占位符。你可以访问 WordPress 官方密钥生成器,复制所有内容,然后替换掉 wp-config.php 文件中对应的所有 define(...) 行。

配置nginx

现在,配置nginx来为网站提供服务:

sudo vim /etc/nginx/sites-available/blog

配置文件可以参考下面:

server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/blog;

    index index.php index.html index.htm;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 拒绝访问 .htaccess 文件,因为 Nginx 不使用它们
    location ~ /\.ht {
        deny all;
    }

    # 添加缓存策略以提高性能
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
}

我们需要在 sites-enabled 目录中创建一个指向该配置文件的符号链接来启用它。

sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

为了让 WordPress 能够自动更新和上传媒体文件,你需要确保 Web 服务器用户 (www-data) 对网站文件有正确的读写权限。

# 将 /var/www/your_domain 目录的所有权交给 www-data 用户和组
sudo chown -R www-data:www-data /var/www/your_domain/
# 为目录设置正确的权限 (755)
sudo find /var/www/your_domain/ -type d -exec chmod 755 {} \;
# 为文件设置正确的权限 (644)
sudo find /var/www/your_domain/ -type f -exec chmod 644 {} \;

配置ssl证书

现在网站可以通过 HTTP 访问,但为了安全还是配置下ssl;

安装 Certbot 和 Nginx 插件

sudo apt install certbot python3-certbot-nginx -y

获取并安装证书
运行 Certbot(替换自己的域名),它会自动检测你的 Nginx 配置,获取证书,并为你配置好 HTTPS。

sudo certbot --nginx -d your_domain -d www.your_domain

Certbot 会询问你几个问题,完成后,Certbot 会自动修改你的 Nginx 配置并重载 Nginx。你的网站现在应该可以通过 https://your_domain 安全访问了,并且证书会自动续订。

其他

当你上传主题或者其他文件时,可能会出问题,因为默认的上传文件的大小限制比较小,所以需要修改php和nginx的配置来调整上传大小限制;

  1. 修改php配置

v

修改以下两个参数的值:

将默认的 2M 修改为一个更大的值,例如 64M
upload_max_filesize = 64M

这个值必须大于或等于 upload_max_filesize
post_max_size = 64M
  1. 配置nginx

修改之前的nginx配置,在server部分添加client_max_body_size 64M;