Ответ 1
Вам нужно добавить в свой wp-config.php
:
define('MULTISITE', true);
У меня была та же проблема. Я пропустил эту строку, потому что у меня уже была define('WP_ALLOW_MULTISITE', true);
в моей wp-config, и она выглядела одинаково.
При попытке конвертировать WordPress в настройку Multisite я получаю сообщение об ошибке:
Ошибка при установлении соединения с базой данных
Я использую WordPress 3.7.1 в Windows 7 с сервером WAMP.
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]
Вам нужно добавить в свой wp-config.php
:
define('MULTISITE', true);
У меня была та же проблема. Я пропустил эту строку, потому что у меня уже была define('WP_ALLOW_MULTISITE', true);
в моей wp-config, и она выглядела одинаково.
Имел ту же проблему, нашел 3 возможных решения:
Убедитесь, что DB_NAME, DB_USER, DB_PASSWORD и DB_HOST в вашем wp-config.php действительно ожидаются.
Как упоминал ранее Дима Л., define ('MULTISITE', true), также ожидается.
(что разрешило это для меня). Создав многостраничный сайт для Wordpress, изменив столбец "wp_blogs" таблицы "путь" на undefined для моего сайта. Я изменил его на "/", и соединение DB было восстановлено.
Я долго боролся из-за этой проблемы. И наконец нашел решение.
Вы не должны добавлять все эти параметры сразу в файл wp-config.php. Следуйте инструкциям, описанным здесь: http://codex.wordpress.org/Create_A_Network
В качестве первого шага добавьте только следующий код:
/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
И затем обновите страницу. После этого в панели администрирования перейдите в Сервис → Настройка сети и выберите настройки своего сайта.
Для остальных просто используйте инструкции из приведенной выше ссылки.
Удачи!
У меня была странная встреча совсем недавно. После настройки dev-сервера, который работает под другим доменом и переместил в него многоуровневую настройку, я получил ту же ошибку "Ошибка при установлении соединения с базой данных". Я проверил, что все таблицы wp_options имеют правильные домены в соответствующих настройках и что мое соединение с базой данных имеет правильные учетные данные и будет работать в нормальных окружениях.
Я нашел способ получить лучшую отчетность об ошибках. Я добавил вывод объекта базы данных в функцию dead_db() в функции .php, который затем показал мне, что он не может найти блоги для моего сайта в таблице wp_blogs. Я просто забыл обновить домены для тестового сервера в этой таблице.
function dead_db() {
global $wpdb;
echo "<pre>";
print_r($wpdb);
echo "</pre>";
wp_load_translations_early();
Надеюсь, что это поможет кому-то:)
Помимо всего сказанного выше, при работе с многопользовательской средой проверьте также следующее: в соответствующих подкаталогах (/home/subsitename) существуют отдельные файлы wp-config.php и .htaccess для каждого из (суб) сайтов, поэтому вышеупомянутые параметры должны быть скорректированы во всех этих файлах. Например, мой основной сайт работал правильно, так как эти файлы в моем/домашнем каталоге были в порядке, но когда вы пытались получить доступ к моим подсайтам, я получал сообщение об ошибке подключения к базе данных, пока не изменил эти файлы.
Я добавил $base = '/'; в конфигурацию, которая решила проблему.
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);
Вот как я его исправил
настройки конфигурации
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/
И наконец - reset sitrurl и домашняя страница в таблице опций (снова найденная с использованием phpmyadmin) до
http://localhost/myblog/
Вдохновленный ответом Сабина, я проверил wp_blogs
и обнаружил, что значение domain
все еще указывает на неправильный домен (я перемещал многосайтовый сайт на dev-сервер). Запуск UPDATE wp_blogs SET domain='example.com';
исправил мою проблему (обратите внимание, что я использую подкаталог multisite, а не субдомен - не слепо запускайте этот SQL!)
Мой DOMAIN_CURRENT_SITE в wp-config.php был define ('DOMAIN_CURRENT_SITE', 'www.example.com');
Удаление " http://" в wp_blogs → домене исправил мою проблему.
У меня возникла проблема после перемещения мультисайта из подкаталога в корневой каталог. Ват решил, что это для меня было частично тем, о чем говорил Сабин Чирила: 1. Убедитесь, что DB_NAME, DB_USER, DB_PASSWORD и DB_HOST в вашем wp-config.php действительно являются ожидаемыми. 2. Как упоминал ранее Дима Л., определите ( "MULTISITE", true); также ожидается. 3. Измените "путь" таблицы столбцов "wp_blogs" на "/", и соединение с БД было восстановлено.
но мне пришлось изменить еще кое-что.
Если вы используете WHM/cPanel, и вы уже проверили, что добавили константу MULTISITE
/WP_ALLOW_MULTISITE
, вы, вероятно, столкнулись с проблемами виртуального хоста.
Если вы получаете ошибку базы данных, скорее всего, ваши серверы имен или запись являются правильными. В противном случае ваш домен не будет указывать на ваш сервер с подключением к базе данных. Но вы, вероятно, забыли или пропустили доменное имя из псевдонимов cPanel.
Просто перейдите в cPanel, найдите "Псевдонимы" и введите имя домена, которое отсутствует в "Создать новое псевдоним".
Вы также можете перейти на cPanel, войдя в WHM, ищите "Учетные записи списков", ищите нужную учетную запись и щелкаете по значку CP.