安装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的配置来调整上传大小限制;
修改php配置
v
修改以下两个参数的值:
将默认的 2M 修改为一个更大的值,例如 64M
upload_max_filesize = 64M
这个值必须大于或等于 upload_max_filesize
post_max_size = 64M
配置nginx
修改之前的nginx配置,在server部分添加client_max_body_size 64M;