Nginx 基础配置与冲突解决
| 问题点 | 现象 | 根源分析 | 解决方案 |
| Nginx 欢迎页冲突 | 浏览器持续显示 "Welcome to nginx!",无法显示 WordPress。 | Nginx 默认配置 (/etc/nginx/sites-enabled/default) 优先级高于或覆盖了自定义的 wordpress.conf 配置。 | 禁用默认配置: 彻底删除或移除 /etc/nginx/sites-enabled/default 符号链接。 |
| Nginx 配置未生效 | 删除了默认配置后,仍然显示默认页。 | Nginx 主配置文件未正确加载自定义配置文件,或没有正确执行 systemctl restart nginx。 | 确认 /etc/nginx/nginx.conf 包含 include /etc/nginx/sites-enabled/*;,并执行 sudo systemctl restart nginx。 |
| IPv6 访问失败 | 使用 IPv6 地址访问时显示 “未发送任何数据” (ERR_EMPTY_RESPONSE)。 | Nginx 配置文件中只监听了 listen 80;,但在某些系统上可能未启用 IPv6 监听,或服务器防火墙未放行 IPv6 流量。 | 明确启用 IPv6 监听: 在 Nginx server 块中添加 listen [::]:80; 和 listen [::]:443 ssl http2;。 |
WordPress 核心功能与权限问题
| 问题点 | 现象 | 根源分析 | 解决方案 |
| FTP 凭证提示 | 安装插件/主题时,WordPress 要求输入 FTP 登录凭证。 | WordPress 核心文件所有者(通常是 root 或用户)与 Web 服务器运行用户(www-data)不一致,导致 Web 服务器没有写入权限。 | 修复文件所有权和权限: 将 WordPress 目录的所有权递归地更改为 www-data:www-data,并设置标准权限(目录 755,文件 644)。 |
| 样式丢失 | 网站内容显示,但没有排版,出现 “裸奔” 状态。 | 通常是 WordPress 地址设置错误(siteurl 或 home)或 Nginx 配置未能正确处理静态资源。 | 确认 Nginx 配置正确后,检查数据库中 wp_options 表的 siteurl 和 home 字段,确保它们是正确的 http:// 或 https:// 域名。 |
HTTPS、证书与混合内容挑战
| 问题点 | 现象 | 根源分析 | 解决方案 |
| Certbot 证书警告 | 使用 IP 地址或浏览器绕过 Cloudflare 访问时,出现 “证书不受信任” 警告。 | Cloudflare Origin 证书仅用于加密 Cloudflare 和源服务器之间 的流量,不被公共浏览器信任。浏览器直接连接服务器时会报错。 | 强制 Cloudflare 代理: 在 Cloudflare DNS 设置中,确保 blog.skadi.ltd 记录为 橙色云朵 ☁️ (Proxied) 状态,并强制用户通过域名访问。 |
| 图片加载失败 | 文章中的图片显示为占位符,但媒体库中可见。 | 数据库中文章内容的图片链接仍是旧的 http:// 链接,导致 HTTPS 浏览器发出 混合内容(Mixed Content) 警告并阻止加载。 | 数据库 URL 批量替换: 使用 Better Search Replace 插件或 SQL 命令,将所有 http://blog.skadi.ltd 替换为 https://blog.skadi.ltd。 |
PS:不得不说,迁移个wordpress是真的麻烦