Подключение к удаленной базе данных при локальной установке WordPress

11 окт. 2013 г., 17:49:06
Просмотры: 18.4K
Голосов: 3

Я разрабатываю сайт для клиента и хочу позволить ему добавлять контент параллельно с моей работой над дизайном и функционалом, чтобы к моменту завершения разработки сайт был практически готов.

В настоящее время я использую XAMPP на порту 81, поэтому URL моего проекта выглядит так:

http://localhost:81/projectname

Мой файл wp-config содержит все необходимые настройки для подключения к удаленной БД, однако при переходе по адресу:

http://localhost:81/projectname

меня постоянно перенаправляет на:

http://localhost/projectname

Я удалил все файлы htaccess, думая, что проблема в них, но это не помогло. Мой провайдер посоветовал открыть порт 3306, что я и сделал, но это также не решило проблему.

Возможно, это как-то связано с использованием порта 81 в XAMPP?

ОБНОВЛЕНИЕ: Настройки сайта ведут на онлайн-версию, поэтому:

Адрес сайта = http://example.com

Адрес WordPress = http://example.com

Спасибо за помощь

6
Комментарии

Какие у вас настройки URL в Настройки->Общие?

s_ha_dum s_ha_dum
11 окт. 2013 г. 17:59:55

Я внес правки в вышеуказанный вопрос, shadum, спасибо

SixfootJames SixfootJames
11 окт. 2013 г. 18:37:56

Извините? Ваши настройки конфигурации ссылаются на внешний сайт? Это никогда не будет работать корректно. Я очень запутался в том, что вы сейчас делаете.

s_ha_dum s_ha_dum
11 окт. 2013 г. 18:41:11

Нет ли способа выгрузить контент на локальный сайт, чтобы получить контент на сайт, пока я работаю над разработкой сайта, а клиент добавляет контент в живую базу данных? Я раньше не делал этого в WP, но мы делали это с DNN много лет назад.

SixfootJames SixfootJames
11 окт. 2013 г. 18:50:55

Попробуйте также проверить файл конфигурации Apache в вашей установке Xampp. Вы можете посмотреть по этой ссылке, как настроить несколько сайтов с помощью xampp, что может помочь проверить, проблема ли в Xampp: http://kuppalli.wordpress.com/2011/01/24/setup-multiple-sites-on-your-local-machine-using-xampp-or-apache-2/

Camilo Buitrago Camilo Buitrago
11 окт. 2013 г. 18:20:11

Спасибо, Камило. Я попробовал это, думая, что добавление порта 3306 может помочь, но не помогло. У меня нет проблемы с несколькими проектами, а скорее проблема с запуском локального проекта, который подключается к удаленной базе данных.

SixfootJames SixfootJames
11 окт. 2013 г. 18:45:21
Показать остальные 1 комментариев
Все ответы на вопрос 2
12

Неужели нет способа вытянуть контент на локальный сайт, чтобы я мог работать над разработкой сайта, пока клиент добавляет контент в живую базу данных?

Если удалённый сервер поддерживает подключение, вы можете подключиться к удалённой базе данных. Просто правильно настройте константы подключения:

// ** Настройки MySQL - Эту информацию можно получить у вашего хостинг-провайдера ** //
/** Имя базы данных для WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Имя пользователя MySQL */
define( 'DB_USER', 'username_here' );

/** Пароль к базе данных MySQL */
define( 'DB_PASSWORD', 'password_here' );

/** Хост MySQL */
define( 'DB_HOST', 'localhost' );

Вам почти наверняка также придётся установить эти настройки в локальной установке:

define( 'WP_SITEURL', 'http://example.com/wordpress' );
define( 'WP_HOME', 'http://example.com/wordpress' );

Я почти гарантирую, что у вас всё равно возникнут проблемы, не говоря уже о том, что изменения, которые вы вносите, будут применяться на живом сервере.

Существуют другие потенциальные решения, такие как зеркалирование базы данных, но это выходит за рамки данной темы, и я сам никогда этого не делал.

Мой совет — просто скопируйте живую базу данных на локальный сервер в начале проекта и не пытайтесь синхронизировать базы данных или как-либо связывать сайт разработки с рабочим. Вы напрашиваетесь на проблемы. В WordPress нет чёткого разделения контента и конфигурации в базе данных.

11 окт. 2013 г. 19:00:38
Комментарии

Спасибо, Shadum, возможно, я пойду по пути постоянного обновления рабочей базы данных... и не волнуйся, рабочая БД скрыта за URL до момента запуска сайта :)

SixfootJames SixfootJames
11 окт. 2013 г. 20:36:31

Нет, не сработало. Но спасибо за попытку, Shadum.

SixfootJames SixfootJames
11 окт. 2013 г. 20:39:51

Мой совет в последнем абзаце, обрати внимание.

s_ha_dum s_ha_dum
11 окт. 2013 г. 20:52:54

Спасибо, Shadum... я пойду по пути, который ты описал в последнем абзаце

SixfootJames SixfootJames
7 нояб. 2013 г. 08:02:56

@SixfootJames : ты принял этот ответ давно, но теперь отменил принятие и не выбрал альтернативный вариант. Почему?

s_ha_dum s_ha_dum
20 янв. 2014 г. 16:25:05

Привет, Shadum, я перепробовал все эти варианты и попробовал снова, но это не сработало, поэтому я надеюсь, что у кого-то другого может быть решение.

SixfootJames SixfootJames
21 янв. 2014 г. 21:21:54

@SixfootJames : вам, вероятно, придется предоставить больше деталей.

s_ha_dum s_ha_dum
21 янв. 2014 г. 21:24:53

В моей предыдущей компании мы делали это с помощью DNN. Команда могла работать над разными частями веб-сайта, в то время как владелец сайта начинал писать контент прямо в CMS. У каждого был копия сайта через SVN, но все подключались к одной базе данных, что ускоряло процесс разработки. Я хотел бы достичь такого же результата с WordPress. Единственной альтернативой может быть размещение собственного внутреннего сервера и затем, с использованием NO-IP, предоставление клиенту доступа к сайту, подключённому через мою собственную сеть?

SixfootJames SixfootJames
22 янв. 2014 г. 08:26:56

Я также подключался к удалённым базам данных, но это зависит от конфигурации сервера, что может быть вашей проблемой. Не все серверы разрешают удалённые подключения.

s_ha_dum s_ha_dum
22 янв. 2014 г. 16:22:29

Шадум, я на самом деле недавно звонил своему интернет-провайдеру, и они заверили меня, что это возможно. Если я предоставлю вам данные удаленной базы данных, как вы думаете, сможете ли вы показать мне, как установить это соединение в конфигурационном файле? Я попробовал все настройки, которые вы дали выше, но когда я перехожу, например, с локального хоста и затем кликаю на другую страницу, меня перебрасывает на страницу живого сайта, вместо того чтобы оставаться на локальных страницах.

SixfootJames SixfootJames
22 янв. 2014 г. 21:44:26

Твой интернет-провайдер? Ты имеешь в виду хостинг-провайдера?

s_ha_dum s_ha_dum
22 янв. 2014 г. 21:46:05

Да, извини, у нас это называют интернет-провайдером :)

SixfootJames SixfootJames
22 янв. 2014 г. 22:05:23
Показать остальные 7 комментариев
8

Я думаю, s_ha_dum движется в правильном направлении, но, кажется, перепутал порядок действий.

Вам нужно:

  1. Разрабатывать/дизайнить локально
  2. Подключаться к УДАЛЁННОЙ базе данных и работать с её содержимым?

Вам понадобится удалённая (тестовая) установка WordPress, где клиент сможет создавать/редактировать свой контент.

Ваш локальный сайт WordPress (localhost) должен указывать на удалённую базу данных, чтобы получать контент, который использует клиент.

Таким образом, у вас будет сайт http://example.com/wordpress, настроенный для редактирования клиентом — даже с базовой установкой WP. Этот сайт будет подключён к своей собственной базе данных.

Ваш локальный сайт должен иметь учётные данные базы данных УДАЛЁННОГО сайта, с параметром DB_HOST, установленным на http://example.com, или другой путь к mySQL, если доступ осуществляется иным способом через вашего хостинг-провайдера.

На локальном сайте оставьте WP_SITEURL и WP_HOME установленными на localhost. В противном случае вы столкнётесь с циклами перенаправления.

29 янв. 2014 г. 16:59:46
Комментарии

Спасибо, Эрик, именно это и происходило, и то, что вы предлагаете — это то, чего я хотел бы достичь, но у меня постоянно возникала проблема с редиректом.

Я объединю оба ваших решения и дам вам знать :) Еще раз спасибо!

SixfootJames SixfootJames
29 янв. 2014 г. 18:00:55

Извините, это WP_SITEURL, а не WP_SITE_URL. Если это не сработает, возможно, вам нужно добавить define('WP_RELOCATE', true); в ваш файл wp-config.php, войти в систему, а затем удалить эту строку.

Eric Holmes Eric Holmes
5 февр. 2014 г. 17:38:21

Спасибо, Эрик, пока не было времени снова этим заняться, но я вернусь к этому, как только появится возможность.

SixfootJames SixfootJames
5 февр. 2014 г. 21:08:44

Привет, Эрик. Сейчас работаю над новым проектом и протестировал это. Работает отлично, но очень медленно. Есть ли способ ускорить процесс?

SixfootJames SixfootJames
25 февр. 2014 г. 12:24:03

Определение relocate нужно только для первого входа при переносе сайта. Удалите его, как только всё заработает правильно. :)

Eric Holmes Eric Holmes
25 февр. 2014 г. 16:59:06

Не совсем понял? Я имел в виду, что всё работает, но соединение между Localhost и загрузкой страниц довольно медленное. Есть ли способ ускорить это? Я пробовал URL, а также IP-адрес для подключения к БД, но оба варианта работают медленно.

SixfootJames SixfootJames
26 февр. 2014 г. 16:21:03

Да, удалите define('WP_RELOCATE', true); из вашего файла wp-config.php.

Eric Holmes Eric Holmes
26 февр. 2014 г. 20:06:11

Добавлю здесь примечание: когда я впервые использовал удаленную базу данных перед применением WP_SITEURL и WP_HOME, не было никаких проблем с перенаправлением. Просто загружался удаленный набор PHP-стилей, но некоторые файлы не могли загрузиться из-за предупреждения CORS. После изменения конфигурации все заработало сразу же.

西門 正 Code Guy - JingCodeGuy 西門 正 Code Guy - JingCodeGuy
13 июл. 2020 г. 04:27:11
Показать остальные 3 комментариев