尝试将WordPress转换为多站点设置时,出现错误:
建立数据库连接时出错
我在Windows 7上使用带有WAMP服务器的WordPress 3.7.1。
define('WP_ALLOW_MULTISITE', true );
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost');
define('PATH_CURRENT_SITE', '/wordpress_test4/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
RewriteEngine On
RewriteBase /wordpress_test4/
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
答案 0 :(得分:43)
您需要添加到wp-config.php
:
define('MULTISITE', true);
我遇到了同样的问题。我跳过了这一行,因为我的wp-config中已经有define('WP_ALLOW_MULTISITE', true);
,它看起来也一样。
答案 1 :(得分:24)
有同样的问题,找到了3个可能的解决方案:
请确保:wp-config.php中的DB_NAME,DB_USER,DB_PASSWORD和DB_HOST确实是预期的。
正如Dima L.之前提到的, define('MULTISITE',true); 也是预期的。
(为我解决的问题)为wordpress设置多站点,将'wp_blogs'表的列'路径'更改为我网站的未定义位置。我将其更改为“/”并重新建立了数据库连接。
答案 2 :(得分:11)
由于这个问题,我挣扎了很长时间。最后找到了解决方案。
您不应该在wp-config.php文件中一次添加所有这些设置。按照此处描述的确切步骤操作:http://codex.wordpress.org/Create_A_Network
仅添加以下代码作为第一步:
/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
然后刷新您的页面。 之后,在您的管理面板中转到工具 - >网络设置并选择您的子站点设置。
其他方面,请使用上面链接中的说明。
祝你好运!答案 3 :(得分:4)
我最近遇到了一次奇怪的遭遇。设置一个在不同域下运行并将多站点设置移动到它的开发服务器后,我得到了同样的错误“建立数据库连接时出错”。我检查过所有wp_options表在相应的设置中都有正确的域,并且我的数据库连接具有正确的凭据,并且可以在正常的范围内工作。
我找到了一种更好的错误报告方法。我在functions.php中的函数dead_db()中添加了数据库对象的输出,然后向我显示它在表wp_blogs中找不到我的站点的任何博客。我只是忘了在此表中更新测试服务器的域。
function dead_db() {
global $wpdb;
echo "<pre>";
print_r($wpdb);
echo "</pre>";
wp_load_translations_early();
希望能帮助某人:)
答案 4 :(得分:2)
wp-config.php中的 DOMAIN_CURRENT_SITE 是 define('DOMAIN_CURRENT_SITE','www.example.com');
在wp_blogs中删除“ http:// ” - &gt;域名修复了我的问题。
答案 5 :(得分:1)
除了以上所述之外,如果使用多站点环境,请检查以下内容: 在各个子目录(/ home / subsitename)中,每个(子)站点都有单独的wp-config.php和.htaccess文件,因此必须在所有这些文件中调整上述参数。 例如,我的主站点工作正常,因为我的/ home目录中的这些文件都没问题,但是当我试图访问我的子站点时,我一直在收到数据库连接错误消息,直到我调整这些文件为止。
答案 6 :(得分:1)
我在
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'mydomain.com');
$base = '/';
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
答案 7 :(得分:1)
将多站点从子目录移动到根目录后,我遇到了问题。 Wat为我解决了部分原因是Sabin Chirila所提到的: 1.确保:wp-config.php中的DB_NAME,DB_USER,DB_PASSWORD和DB_HOST实际上是预期的。 2.正如Dima L.之前提到的,定义(&#39; MULTISITE&#39;,true);也是预料之中的。 3.更改&#39; wp_blogs&#39;表的专栏&#39;路径&#39;到&#34; /&#34;并且重新建立了数据库连接。
但我不得不改变一些事情。
答案 8 :(得分:1)
如果您正在运行WHM / cPanel并且您已经检查过您已添加MULTISITE
/ WP_ALLOW_MULTISITE
常量,那么您可能会遇到虚拟主机问题。
如果您收到数据库错误,可能是您的名称服务器或A记录是正确的。否则,您的域名将无法通过数据库连接指向您的服务器。但是,您可能已经忘记或错过了 cPanel别名中的域名。
只需前往cPanel,搜索&#39;别名&#39;并在&#39;创建新别名&#39;下输入您遗失的域名。
您还可以登录WHM,搜索“列出帐户”,搜索所需帐户并点击CP图标,即可访问cPanel。
答案 9 :(得分:0)
这是我如何解决它
配置设置
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/myblog/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
然后在数据库表中(使用phpmyadmin找到)wp_blogs将根博客的值(应该是谎言/数字1)设置为
domain localhost
root /myblog/
最后 - 重置选项表中的sitrurl和主页(再次使用phpmyadmin找到)
http://localhost/myblog/
答案 10 :(得分:0)
受Sabin的回答启发,我检查wp_blogs
并发现domain
值仍然指向错误的域(我正在将多站点移动到开发服务器)。运行UPDATE wp_blogs SET domain='example.com';
解决了我的问题(请注意我使用的是子文件夹多站点,而不是子域名 - 不要盲目运行该SQL!)
答案 11 :(得分:0)
如果您对多站点进行了整个数据库转储,则必须更改域名以匹配下表中的 localhost 域:
对于多站点,在 config.php 上定义 WP_HOME 和 WP_SITEURL 将不起作用。
理想情况下,在导入数据库转储之前,如果您有 .sql 文件,您可以搜索所有域并将其替换为您自己的本地主机域。
以上步骤对我有用。