Вопрос или проблема
Я пытаюсь использовать встроенную функциональность Xip.io в MAMP для просмотра установки WordPress multisite в локальной сети. У меня это работает без проблем с одноастной установкой WordPress, но я сталкиваюсь с трудностями с multisite. Просто хотел узнать, знает ли кто, что нужно изменить в файле wp-config, чтобы это заработало с multisite, так как изменение записей в базе данных здесь не является шагом вперед.
Я не использовал MAMP и Xip.io для своей локальной установки, а использовал XAMPP.
Я объясню вам, какую идею я использовал для включения настройки multisite на своем компьютере, и надеюсь, это направит вас в правильном направлении, позволяя вам реализовать это с использованием MAMP. Обратите внимание, что я использую Windows.
Прежде чем что-либо делать, я планировал настроить свой поддомен для своей сети, а не подкаталог. Поэтому мой план заключался в том, чтобы иметь domain.dev
, www.domain.dev
, sub1.domain.dev
, sub2.domain.dev
и так далее.
Поэтому мне пришлось добавить в свой файл hosts
следующие записи:
127.0.0.1 domain.dev
127.0.0.1 www.domain.dev
127.0.0.1 sub1.domain.dev
127.0.0.1 sub2.domain.dev
Затем я обновил свой файл виртуальных хостов httpd-vhosts.conf
, чтобы включить следующее:
<VirtualHost domain.dev:80>
ServerAdmin admin@domaindev
DocumentRoot "C:/path/to/wordpress"
ServerName domain.dev
ServerAlias www.domain.dev
<Directory "C:/path/to/wordpress">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost sub1.domain.dev:80>
ServerAdmin [email protected]
DocumentRoot "C:/path/to/wordpress"
ServerName sub1.domain.dev
<Directory "C:/path/to/wordpress">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost sub2.domain.dev:80>
ServerAdmin [email protected]
DocumentRoot "C:/path/to/wordpress"
ServerName sub2.domain.dev
<Directory "C:/path/to/wordpress">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Затем я установил WordPress как обычно, одноастная установка.
Затем я включил multisite с поддоменом, как описано здесь, и всё работало прекрасно.
Я заставил xip.io/nip.io работать с WordPress multisite на Laragon (в основном эквивалент MAMP, но для Windows).
Мои основные шаги были:
- Создайте новый обычный сайт WordPress. Допустим, имя вашего нового сайта “mysite.test”
- Установите WP CLI
- С командной строки (терминала) выполните
wp search-replace "mysite.test" "mysite.127.0.0.1.nip.io" --all-tables
(или вы можете установить его на xip.io, я не заметил никакой разницы). - В файле конфигурации Apache для вашего сайта измените ServerName на
mysite.127.0.0.1.nip.io
и ServerAlias на*.mysite.127.0.0.1.nip.io
вместоmysite.test
. - Перезапустите Apache.
- Перейдите на mysite.127.0.0.1.nip.io. Это должен быть ваш сайт.
- Включите WordPress multisite, выбрав опцию “поддомен”.
Это немного варварски, что нужно вводить такой длинный URL, но, по крайней мере, мне не нужно больше беспокоиться о добавлении новой записи DNS.
У меня были аналогичные проблемы, и я связался с Appsolute по этому поводу (я пользовался MAMP PRO в течение многих лет). Ответ, который я получил, был “Это не работает с WordPress”. Но они упомянули, что это проблема, о которой они осведомлены, и их собственный MAMP Viewer для iOS (Android?) должен работать. Но этого не происходит. С тех пор, как я сказал об этом и ответил на вопросы, я не слышал от них. Я просто переключился на Local by Flywheel для разработки WordPress. Тем не менее, я думаю, что вышеуказанные ответы должны помочь. Я также использовал плагин, чтобы сделать все пути относительными (Relative Paths). Это все еще не решает проблему MAMP xip.io / Mamp Viewer, но делает перемещение/тестирование сайта немного проще. И WordPress сериализует некоторые поля, где используется URL, поэтому любое изменение URL должно также учитывать правильное количество букв в строке. Надеюсь, это поможет.
Ответ или решение
Использование MAMP и Xip.io для просмотра установки WordPress Multisite в локальной сети
Для того чтобы успешно установить и просмотреть WordPress Multisite через MAMP с использованием Xip.io, необходимо выполнить определенные шаги, обеспечивая правильную настройку как на стороне сервера, так и на уровне конфигурации WordPress. Данный процесс будет разбит на несколько этапов, включая настройку Apache, конфигурацию WordPress и использование Xip.io для доступа к мультисайту.
Этап 1: Подготовка окружения
-
Установка MAMP: Убедитесь, что у вас установлена последняя версия MAMP. Обычно, это программное обеспечение поставляется с Apache и MySQL, что обеспечивает необходимую серверную среду.
-
Создание базы данных: Запустите MAMP и создайте новую базу данных для вашего WordPress. Вы можете сделать это через phpMyAdmin, доступный по адресу
http://localhost/phpmyadmin
.
Этап 2: Настройка файла hosts
Xip.io предоставляет простой способ создания динамических DNS-ссылок. Вам нужно будет добавить нужные поддомены в файл hosts
. Откройте файл hosts
, находящийся по адресу /etc/hosts
на Mac, и добавьте следующие строки:
127.0.0.1 domain.dev
127.0.0.1 www.domain.dev
127.0.0.1 sub1.domain.dev
127.0.0.1 sub2.domain.dev
Этап 3: Конфигурация виртуального хоста Apache
Откройте файл конфигурации Apache httpd-vhosts.conf
, который обычно находится по пути /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
, и добавьте следующее:
<VirtualHost *:80>
DocumentRoot "/path/to/wordpress"
ServerName domain.dev
ServerAlias www.domain.dev
<Directory "/path/to/wordpress">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/path/to/wordpress"
ServerName sub1.domain.dev
<Directory "/path/to/wordpress">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/path/to/wordpress"
ServerName sub2.domain.dev
<Directory "/path/to/wordpress">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Не забудьте перезапустить MAMP для применения изменений.
Этап 4: Установка WordPress
-
Скачайте WordPress и разархивируйте его в указанную директорию
/path/to/wordpress
. -
Запустите установку WordPress через браузер, перейдя по адресу
http://domain.dev
и следуйте инструкциям. -
Включение мультисайта: После завершения установки добавьте следующий код в файл
wp-config.php
, чтобы активировать режим мультисайта:
define('WP_ALLOW_MULTISITE', true);
- Перейдите в админку WordPress и в разделе "Инструменты" выберите "Настройка сети". Выберите поддомены и следуйте инструкциям для завершения настройки.
Этап 5: Настройка Xip.io
Для интеграции с Xip.io, добавьте в файл wp-config.php
необходимые строки. Ниже приведены параметры, которые помогут отобразить ваш сайт при помощи Xip.io:
define('DOMAIN_CURRENT_SITE', 'domain.dev');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
После этого вам нужно будет использовать Xip.io для доступа к поддоменам. Например, вместо sub1.domain.dev
используйте sub1.127.0.0.1.xip.io
.
Команда поиска и замены: Если вам необходимо заменить все вхождения вашего основного домена в базе данных, вы можете использовать WP-CLI для выполнения команды:
wp search-replace 'domain.dev' 'sub1.127.0.0.1.xip.io' --all-tables
Заключение
Следуя данным шагам, вы сможете успешно настроить и просматривать WordPress Multisite с использованием MAMP и Xip.io на локальной сети. Данное решение не только обеспечивает большую гибкость, но и избавляет от необходимости постоянно изменять файл hosts
при добавлении новых поддоменов. Подобная настройка значительно упрощает процесс разработки и тестирования веб-приложений.