————–系列①
好的!我将从零开始,手把手带你完成整个部署过程。请准备一台安装 Ubuntu 20.04/22.04 的服务器(物理机或虚拟机均可),跟着以下步骤操作:
🌱 第一章:基础系统准备(耗时:5分钟)
# 1. 更新系统
sudo apt update && sudo apt upgrade -y
# 2. 安装必备工具
sudo apt install -y curl wget nano git unzip ufw
# 3. 设置时区(亚洲上海)
sudo timedatectl set-timezone Asia/Shanghai
# 4. 配置防火墙
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
🏗️ 第二章:安装LNMP环境(耗时:10分钟)
# 1. 安装Nginx
sudo apt install -y nginx
sudo systemctl enable --now nginx
# 2. 安装MySQL
sudo apt install -y mysql-server
sudo systemctl enable --now mysql
# 3. 安全配置MySQL(设置root密码)
sudo mysql_secure_installation
# 遇到提示按以下选择:
# 1. 输入Y启用密码验证插件
# 2. 设置强密码(至少12位)
# 3. 输入Y删除匿名用户
# 4. 输入Y禁止root远程登录
# 5. 输入Y删除测试数据库
# 6. 输入Y重新加载权限表
# 4. 安装PHP
sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl
sudo systemctl enable --now php-fpm
🔑 第三章:配置数据库(耗时:3分钟)
# 1. 登录MySQL
sudo mysql -u root -p
# 输入刚才设置的root密码
# 2. 创建WordPress专用数据库和用户
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
📝 将
StrongPassword123!
替换为你自己的强密码
📥 第四章:安装WordPress(耗时:7分钟)
# 1. 下载最新版WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
# 2. 移动到网站目录
sudo mv wordpress /var/www/html/blog
# 3. 设置权限
sudo chown -R www-data:www-data /var/www/html/blog
sudo find /var/www/html/blog -type d -exec chmod 750 {} \;
sudo find /var/www/html/blog -type f -exec chmod 640 {} \;
# 4. 创建配置文件
cd /var/www/html/blog
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
在配置文件中修改以下内容:
// 修改数据库设置
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'StrongPassword123!' ); // 替换为你的密码
define( 'DB_HOST', 'localhost' );
// 添加安全密钥(从以下链接生成:https://api.wordpress.org/secret-key/1.1/salt/
// 复制生成的密钥替换下面的内容
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');
// 开启调试模式(开发环境用)
define( 'WP_DEBUG', false );
⚙️ 第五章:配置Nginx(耗时:8分钟)
# 1. 创建Nginx配置文件
sudo nano /etc/nginx/sites-available/blog
粘贴以下内容(替换example.com
为你的域名):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html/blog;
index index.php index.html index.htm;
# 安全头部
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 阻止访问敏感文件
location ~* /(\.|wp-config\.php|wp-config-sample\.php|readme\.html|license\.txt) {
deny all;
}
# 禁用XML-RPC
location = /xmlrpc.php {
deny all;
}
# 静态文件缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
启用配置:
# 2. 启用网站配置
sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
# 3. 测试并重载Nginx
sudo nginx -t
sudo systemctl reload nginx
🌐 第六章:配置Cloudflare Tunnel(耗时:10分钟)
# 1. 安装Cloudflared
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
# 2. 登录Cloudflare账号
cloudflared tunnel login
# 复制输出的URL到浏览器登录,选择你要使用的域名授权
# 3. 创建隧道(my-tunnel可自定义)
cloudflared tunnel create my-tunnel
# 记下返回的隧道ID(如:f1e2d3c4-b5a6-7c8d-9e0f-a1b2c3d4e5f6)
# 4. 配置DNS记录(替换example.com为你的域名)
cloudflared tunnel route dns my-tunnel example.com
cloudflared tunnel route dns my-tunnel www.example.com
# 5. 创建配置文件
sudo mkdir /etc/cloudflared
sudo nano /etc/cloudflared/config.yml
配置文件内容(替换隧道ID和域名):
tunnel: f1e2d3c4-b5a6-7c8d-9e0f-a1b2c3d4e5f6 # 替换为你的隧道ID
credentials-file: /root/.cloudflared/f1e2d3c4-b5a6-7c8d-9e0f-a1b2c3d4e5f6.json # 替换为你的证书路径
ingress:
- hostname: example.com # 你的域名
service: http://localhost:80
- hostname: www.example.com # 带www的域名
service: http://localhost:80
- service: http_status:404
🚀 第七章:启动服务(耗时:3分钟)
# 1. 创建系统服务
sudo tee /etc/systemd/system/cloudflared.service > /dev/null <<EOF
[Unit]
Description=Cloudflare Tunnel
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/cloudflared tunnel --config /etc/cloudflared/config.yml run
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# 2. 启动并设置开机自启
sudo systemctl daemon-reload
sudo systemctl enable --now cloudflared
# 3. 检查服务状态
sudo systemctl status cloudflared
# 应该看到 "active (running)" 状态
✨ 第八章:完成WordPress安装(耗时:5分钟)
- 打开浏览器访问你的域名
http://example.com
- 按照向导完成安装:
- 选择语言(简体中文)
- 设置网站标题
- 设置管理员用户名(不要用admin)
- 设置强密码(12位以上,含大小写字母+数字+符号)
- 填写管理员邮箱
- 点击”安装WordPress”
🔒 第九章:安全加固(耗时:8分钟)
# 1. 在WordPress后台安装必要插件
# - Wordfence Security (防火墙)
# - UpdraftPlus (备份)
# - Cloudflare (集成)
# 2. 配置Cloudflare控制台(网页操作)
a. 登录 https://dash.cloudflare.com
b. 选择你的域名
c. SSL/TLS → 概述 → 选择"Full (strict)"
d. SSL/TLS → 边缘证书 → 开启"始终使用HTTPS"
e. 防火墙 → WAF → 创建规则(阻止可疑请求)
# 3. 服务器端安全配置
# 禁用PHP危险函数
sudo nano /etc/php/*/fpm/php.ini
找到并修改:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
# 4. 设置自动备份
sudo apt install -y cron
(crontab -l ; echo "0 3 * * * mysqldump -u root wordpress | gzip > /backups/wordpress_$(date +\%F).sql.gz") | crontab -
🧪 第十章:验证部署(耗时:2分钟)
# 1. 检查隧道状态
cloudflared tunnel list
# 2. 检查SSL证书
curl -I https://example.com
# 应返回 HTTP/2 200 和 Cloudflare 相关头部
# 3. 检查网站性能
ab -c 50 -n 500 https://example.com/
🆘 故障排除指南
问题1:Cloudflared无法启动
# 查看详细日志
sudo journalctl -u cloudflared -f
# 常见解决:
# 1. 检查证书路径是否正确
# 2. 重新登录:cloudflared tunnel login
# 3. 检查config.yml缩进(必须使用空格)
问题2:WordPress建立数据库连接时出错
# 1. 检查wp-config.php中的数据库凭据
# 2. 测试MySQL连接:
mysql -u wpuser -p wordpress
# 3. 检查MySQL用户权限:
SELECT Host,User FROM mysql.user;
问题3:Nginx 502错误
# 1. 检查PHP-FPM状态:
sudo systemctl status php-fpm
# 2. 查看错误日志:
tail -f /var/log/nginx/error.log
# 3. 确保sock文件路径正确:
ls /var/run/php/php-fpm.sock
至此,你的博客已完全部署完成!现在可以通过你的域名(无需公网IP)安全访问博客了。后续建议:
- 每周执行
sudo apt update && sudo apt upgrade
- 每月更换一次MySQL密码
- 使用UpdraftPlus设置自动云端备份