Я пытаюсь автоматизировать создание сайта на WordPress для компании, в которой я работаю. У нас в базе данных много информации о наших клиентах, и мы хотим создать сайт на WordPress для каждого клиента. Процесс работает отлично, и у нас нет проблем с созданием сайтов/передачей данных или чем-то подобным.
Проблема, с которой мы сталкиваемся, возникает, когда мы покупаем новый домен (http://www.newdomain.com) наш процесс прерывается (мы вызываем хранимую процедуру, которая устанавливает все данные после вызова URL для установки WordPress), если домену требуется более 15 минут для разрешения. Мы пробовали делать циклы (где процесс проверяет, разрешается ли домен, и продолжает попытки, но в конечном итоге терпит неудачу). Поэтому мы ищем способ установить URL без фактического разрешения домена.
Я видел, где есть возможности, где можно изменить файл wp-config, но это не работает, так как у нас больше одного домена, и это меняет исходный URL для всех доменов. Что нам действительно нужно, так это просто способ вручную запустить скрипт установки через вызов либо через базу данных, либо каким-то другим способом, который не проверяет, разрешен ли домен или указывает ли на сервер или нет.
Спасибо за любые предложения.
EDIT: Все, что мы делаем для установки WordPress, это вызываем этот URL: http://"newdomain".com/wp-admin/install.php?step=2 - если вы измените настройки в бэкэнде, вызов этого URL установит WordPress без необходимости проходить через форму wp-admin/install.php
решение1
Как сказал Амадан: Вы можете просто временно запрограммировать разрешение имен.
Но что бы я сделал в таком случае, это файл или таблица базы данных, которая содержит все домены для настройки. Затем просто сделайте cronjob, который будет пытаться вызывать DNS каждые 1-5 минут. Как только домен станет доступен, запустите настройку и удалите этот домен из файла/таблицы.
решение2
telnet 1.2.3.4 80
GET /wp-admin/install.php?step=2 HTTP/1.0
Host: www.domain.com
Если вы знаете IP-адрес, к которому вам нужно получить доступ, и доменное имя, к которому вы пытаетесь обратиться, вам не придется изменять /etc/hosts.
Curl, nc, wget могут отправлять запросы заголовков, как и простое сокетное соединение в вашем установочном скрипте.
решение3
Очень простой способ достичь желаемой цели — настроить один экземпляр Wordpress обычным способом, возможно, на тестовой системе в автономном режиме. Установленная версия — это не более чем дерево каталогов файлов и база данных.
- Используя имеющиеся знания или поиск по файлам, найдите элементы, которые необходимо изменить для работы в другой установке.
- Сохраните базу данных Wordpress в файл.
- Создайте скрипт, который может принимать входные данные, например, из файла, и изменять элементы, которые необходимо изменить для новой установки, используя sed, Perl или что-то еще по вашему желанию.
- Сделайте то же самое для всех элементов, которые необходимо изменить в файле дампа базы данных.
- Создайте скрипт создания пользователя и пароля Wordpress для базы данных, создайте пустую базу данных и установите необходимые разрешения.
- Теперь просто скопируйте файлы Wordpress в целевое местоположение, установите разрешения, загрузите файл дампа базы данных и протестируйте его.
- Промыть и повторить...
решение4
Просто используйтеWP-CLI. Чтобы установить новый блог, введите
wp core download
wp core install