Перемещение сайта
Это может быть очень полезный метод для прототипирования нового сайта XOOPS на локальной системе или сервере разработки. Также может быть очень благоразумным тестировать обновление XOOPS на копии вашего производственного сайта в первую очередь, на случай, если что-то пойдет не так. Чтобы достичь этого, вам нужно иметь возможность переместить сайт XOOPS с одного сайта на другой. Вот что вам нужно знать, чтобы успешно переместить сайт XOOPS.
Первым шагом является установка новой среды сайта. Те же элементы, которые рассмотрены в разделе Advance Preparations, также применяются здесь.
Для обзора эти шаги:
- получить хостинг, включая любые требования к доменному имени или электронной почте
- получить учетную запись пользователя MySQL и пароль
- получить базу данных MySQL, на которой указанный пользователь имеет все привилегии
Остальная часть процесса довольно похожа на нормальную установку, но:
- вместо копирования файлов из распределения XOOPS, вы скопируете их с существующего сайта
- вместо запуска установщика, вы импортируете уже заполненную базу данных
- вместо ввода ответов в установщик, вы измените предыдущие ответы в файлах и базе данных
Скопируйте существующие файлы сайта
Заголовок раздела «Скопируйте существующие файлы сайта»Создайте полную копию файлов вашего существующего сайта на локальный компьютер, где вы можете их редактировать. Если вы работаете с удаленным хостом, вы можете использовать FTP для копирования файлов. Вам нужна копия для работы, даже если сайт работает на вашем локальном компьютере, просто создайте еще одну копию каталогов сайта в этом случае.
Важно помнить, что нужно включить каталоги xoops_data и xoops_lib, даже если они были переименованы и/или перемещены.
Чтобы облегчить процесс, вы должны исключить файлы кэша и скомпилированные шаблоны Smarty из вашей копии. Эти файлы будут воссозданы в вашей новой среде, и могут вызвать проблемы с удержанием старой неправильной информации, если не очищены. Для этого удалите все файлы, кроме index.html, во всех трех из этих каталогов:
- xoops_data/caches/smarty_cache
- xoops_data/caches/smarty_compile
- xoops_data/caches/xoops_cache
Примечание: Очистка
smarty_compileособенно важна при перемещении сайта на XOOPS 2.7.0 или с него. XOOPS 2.7.0 использует Smarty 4, и скомпилированные шаблоны Smarty 4 несовместимы со скомпилированными шаблонами Smarty 3. Оставление устаревших скомпилированных файлов приведет к ошибкам шаблонов при первой загрузке страницы на новом сайте.
xoops_lib и зависимости Composer
Заголовок раздела «xoops_lib и зависимости Composer»XOOPS 2.7.0 управляет своими зависимостями PHP через Composer, внутри xoops_lib/. Каталог xoops_lib/vendor/ содержит библиотеки третьих сторон, которые XOOPS нужен во время выполнения (Smarty 4, PHPMailer, HTMLPurifier и т.д.). При перемещении сайта необходимо скопировать все дерево xoops_lib/ — включая vendor/ — на новый хост. Не пытайтесь регенерировать vendor/ на целевом хосте, если вы не разработчик, который изменил composer.json и имеет Composer на цели.
Установите новую среду
Заголовок раздела «Установите новую среду»Те же элементы, которые рассмотрены в разделе Advance Preparations, также применяются здесь. Мы предполагаем здесь, что у вас есть любой хостинг, необходимый для сайта, который вы перемещаете.
Ключевая информация (mainfile.php и secure.php)
Заголовок раздела «Ключевая информация (mainfile.php и secure.php)»Успешное перемещение сайта включает изменение любых ссылок на абсолютные имена файлов и пути, URL-адреса, параметры базы данных и учетные данные доступа.
Два файла, mainfile.php в веб-корневой папке вашего сайта и data/secure.php в каталоге xoops_data вашего сайта (переименованный и/или перемещенный) определяют основные параметры вашего сайта, такие как его URL, где он находится в файловой системе хоста и как он подключается к базе данных.
Вам нужно будет знать, какие значения находятся в старой системе, и какими они будут в новой системе.
mainfile.php
Заголовок раздела «mainfile.php»| Имя | Старое значение в mainfile.php | Новое значение в mainfile.php |
|---|---|---|
| XOOPS_ROOT_PATH | ||
| XOOPS_PATH | ||
| XOOPS_VAR_PATH | ||
| XOOPS_URL | ||
| XOOPS_COOKIE_DOMAIN |
Откройте mainfile.php в редакторе. Измените значения для определений, показанных в диаграмме выше, со старых значений на соответствующие значения для нового сайта.
Ведите записи о старых и новых значениях, так как нам нужно будет сделать аналогичные изменения в других местах на некоторых более поздних этапах.
Например, если вы перемещаете сайт с локального ПК на коммерческий хостинг-сервис, ваши значения могут выглядеть так:
| Имя | Старое значение в mainfile.php | Новое значение в mainfile.php |
|---|---|---|
| XOOPS_ROOT_PATH | c:/wamp/xoopscore27/htdocs | /home8/example/public_html |
| XOOPS_PATH | c:/wamp/xoopscore27/htdocs/xoops_lib | /home8/example/private/xoops_lib |
| XOOPS_VAR_PATH | c:/wamp/xoopscore27/htdocs/xoops_data | /home8/example/private/xoops_data |
| XOOPS_URL | http://localhost/xoops | https://example.com |
| XOOPS_COOKIE_DOMAIN | localhost | example.com |
После того, как вы изменили mainfile.php, сохраните его.
Возможно, что некоторые другие файлы могут содержать жестко закодированные ссылки на ваш URL или даже пути. Это более вероятно в пользовательских темах и меню, но с помощью редактора вы можете искать по всем файлам, чтобы убедиться.
В редакторе выполните поиск по файлам в копии, ища старое значение XOOPS_URL и замените его новым значением.
Сделайте то же самое для старого значения XOOPS_ROOT_PATH, заменив все вхождения новым значением.
Ведите свои заметки, потому что нам нужно будет использовать их снова, когда мы переместим базу данных.
data/secure.php
Заголовок раздела «data/secure.php»| Имя | Старое значение в data/secure.php | Новое значение в data/secure.php |
|---|---|---|
| XOOPS_DB_HOST | ||
| XOOPS_DB_USER | ||
| XOOPS_DB_PASS | ||
| XOOPS_DB_NAME |
Откройте data/secure.php в переименованном и/или перемещенном каталоге xoops_data в редакторе. Измените значения для определений, показанных в диаграмме выше, со старых значений на соответствующие значения для нового сайта.
Другие файлы
Заголовок раздела «Другие файлы»Могут быть другие файлы, которые требуют внимания, когда ваш сайт переместится. Некоторые распространенные примеры - это ключи API для различных сервисов, которые могут быть привязаны к домену, такие как:
- Google Maps
- Recaptch2
- Кнопки нравятся
- Совместное использование ссылок и/или реклама, такие как Shareaholic или AddThis
Изменение этих типов связей не может быть легко автоматизировано, так как подключения к старому домену обычно являются частью регистрации на стороне сервиса. В некоторых случаях это может просто добавить или изменить домен, связанный с сервисом.
Скопируйте файлы на новый сайт
Заголовок раздела «Скопируйте файлы на новый сайт»Скопируйте теперь измененные файлы на свой новый сайт. Методы такие же, как были использованы во время Installation, то есть с помощью FTP.
Скопируйте существующую базу данных сайта
Заголовок раздела «Скопируйте существующую базу данных сайта»Резервная копия базы данных со старого сервера
Заголовок раздела «Резервная копия базы данных со старого сервера»Для этого шага настоятельно рекомендуется использовать phpMyAdmin. Войдите в phpMyAdmin для вашего существующего сайта, выберите вашу базу данных и выберите Export.
Параметры по умолчанию обычно хороши, поэтому просто выберите “Экспортировать метод” Quick и “Формат” SQL.
Используйте кнопку Go для загрузки резервной копии базы данных.

Если у вас есть таблицы в вашей базе данных, которые не из XOOPS или его модулей, и НЕ должны быть перемещены, вы должны выбрать “Экспортировать метод” Custom и выбрать только таблицы, связанные с XOOPS, в вашей базе данных. (Они начинаются с “префикса”, который вы указали во время установки. Вы можете посмотреть префикс вашей базы данных в файле xoops_data/data/secure.php.)
Восстановите базу данных на новом сервере
Заголовок раздела «Восстановите базу данных на новом сервере»На новом хосте, используя новую базу данных, восстановите базу данных с помощью tools, таких как вкладка Import в phpMyAdmin (или bigdump, если необходимо.)
Обновите URL-адреса и пути в базе данных
Заголовок раздела «Обновите URL-адреса и пути в базе данных»Обновите любые http ссылки на ресурсы на вашем сайте в вашей базе данных. Это может быть огромная работа, и есть tool для облегчения этого.
Interconnect/it имеет продукт под названием Search-Replace-DB, который может помочь с этим. Он поставляется с осознанием средств Wordpress и Drupal, встроенных. Как есть, этот инструмент может быть очень полезным, но это еще лучше, когда он осведомлен о вашем XOOPS. Вы можете найти версию, осведомленную о XOOPS, на https://github.com/geekwright/srdb
Следуйте инструкциям в файле README.md для загрузки и временной установки этого инструмента на ваш сайт. Ранее мы изменили определение XOOPS_URL. Когда вы запустите этот инструмент, вы хотите заменить оригинальное определение XOOPS_URL на новое определение, то есть заменить http://localhost/xoops на https://example.com

Введите старые и новые URL-адреса и выберите опцию сухого запуска. Просмотрите изменения, и если все выглядит хорошо, используйте опцию живого запуска. Этот шаг поймет элементы конфигурации и ссылки внутри вашего содержимого, которые относятся к URL-адресу вашего сайта.

Повторите процесс, используя старые и новые значения для XOOPS_ROOT_PATH.
Альтернативный подход без SRDB
Заголовок раздела «Альтернативный подход без SRDB»Другой способ выполнить этот шаг без инструмента srdb - это сбросить базу данных, отредактировать дамп в текстовом редакторе, изменив URL-адреса и пути, а затем перезагрузить базу данных из отредактированного дампа. Да, процесс достаточно сложный и несет достаточно риска, что люди были мотивированы создавать специальные инструменты, такие как Search-Replace-DB.
Попробуйте свой переместившийся сайт
Заголовок раздела «Попробуйте свой переместившийся сайт»На этом этапе ваш сайт должен быть готов к работе в новой среде!
Конечно, могут быть всегда проблемы. Не стесняйтесь задавать вопросы на xoops.org Forums.