title: "调试 WordPress 多站点网络" post_status: publish comment_status: open taxonomy: category: - advanced-administration-handbook post_tag: - Debug - Repos - Data
调试 WordPress 多站点网络
如果您访问到此页面,很可能是在设置或运行 WordPress 多站点网络时遇到了错误。这些错误通常发生在 WordPress 无法在数据库中找到网络所需的一个或多个全局表,或者 Web 服务器配置不正确时。
本指南概述了 WordPress 多站点网络在设置或运行过程中最常见的问题原因及解决方法。
开始之前 {#before-you-begin}
- 在进行更改前,请备份您的数据库和文件。
- 确保您的主机环境满足多站点网络的技术要求。
- 向您的主机服务商确认是否允许安装网络/多站点(某些共享主机可能会限制此功能)。
如果您刚刚安装了网络 {#new-install}
验证 wp-config.php 文件 {#verify-wp-config}
检查您的 wp-config.php 文件,确认以下内容:
- 正确的数据库信息 (
DB_NAME,DB_USER,DB_PASSWORD,DB_HOST) MULTISITE常量SUBDOMAIN_INSTALL常量(根据设置填写 true/false)$base变量- 数据表前缀 (
$table_prefix)
确保在以下代码块之后没有放置任何代码:
/* That's all, stop editing! Happy publishing. */
/** WordPress目录的绝对路径。 */
if ( ! defined('ABSPATH') ) {
define('ABSPATH', __DIR__ . '/');
}
/** 设置WordPress变量和包含文件。 */
require_once ABSPATH . 'wp-settings.php';
如果您在 require_once 行之后发现了自定义代码,请将其移动到“stop editing”注释之前。
Mod_rewrite 或重写规则不工作 {#rewrites}
如果主站点能加载但子站点返回 404 错误,可能是您的重写规则未生效。
Apache
在 Ubuntu/Debian 系统上:
sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/000-default.conf
将两处 AllowOverride None 都改为 AllowOverride All,然后重启 Apache:
sudo systemctl restart apache2
Nginx
对于 Nginx,请确保您的服务器块包含以下配置:
location / {
try_files $uri $uri/ /index.php?$args;
}
重启 Nginx:
sudo systemctl restart nginx
检查数据库 {#check-database}
多站点网络需要额外的数据库表。请确认以下表存在(使用您的前缀,例如 wp_):
wp_blogswp_blogmetawp_blog_versionswp_registration_logwp_signupswp_sitewp_sitemeta
如果表缺失,或者 wp_site/wp_blogs 表为空,您可能需要手动插入数据行。请先备份!
示例 SQL(请调整前缀、域名、路径、用户和日期):
INSERT INTO wp_site VALUES (1, 'example.com', '/');
INSERT INTO wp_blogs VALUES (1, 1, 'example.com', '/', '2025-01-01', '2025-01-01', 1, 0, 0, 0, 0, 0);
INSERT INTO wp_sitemeta VALUES (1, 1, 'site_admins', 'a:1:{i:1;s:5:"admin";}');
⚠️ 请将 "admin" 更改为您的实际用户名,并调整 s:5 以匹配其字符长度。
如果新站点创建突然停止工作 {#site-creation-stopped}
- 确认数据库服务器主机名未更改(检查
wp-config.php中的DB_HOST)。 - 检查数据库用户是否对数据库拥有所有权限。
- 查看 Web 服务器错误日志中与
.htaccess或重写相关的问题。
其他问题 {#other-issues}
- 数据库排序规则冲突:如今已很少见,但从 WordPress MU 升级的遗留系统可能因排序规则不匹配导致站点创建错误。如果从非常旧的版本升级,请检查数据库排序规则设置。
- Apache 重写限制:如果看到如下错误:
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden
这可能会阻止重写并导致 WordPress 报告缺少数据表。请更新 Apache 配置以允许重写。
相关文章 {#related-articles}
外部链接 {#external-links}
遗留说明 {#legacy-notes}
部分问题可追溯至从 WordPress MU(3.0 版之前)迁移而来。这些问题在现代网络中已很罕见,但在运行非常古老的站点时仍可能出现。如有可能,请考虑迁移至全新的多站点安装。