Перенесення сайту
Це може бути дуже корисною технікою створення прототипу нового сайту XOOPS на локальній системі або сервері розробки. Також було б дуже розумно спочатку протестувати оновлення XOOPS на копії робочого сайту, на випадок, якщо щось піде не так. Для цього вам потрібно мати можливість переміщувати свій сайт XOOPS з одного сайту на інший. Ось що вам потрібно знати, щоб успішно перемістити свій сайт XOOPS.
Першим кроком є створення нового середовища сайту. Тут також застосовуються ті самі елементи, що описані в розділі Попередня підготовка.
У огляді ці кроки:
- отримати хостинг, включно з будь-яким доменним іменем або вимогами до електронної пошти
- отримати обліковий запис користувача та пароль MySQL
- отримати базу даних MySQL, на яку вищезазначений користувач має всі привілеї
Решта процесу дуже схожа на звичайне встановлення, але:
- замість того, щоб копіювати файли з дистрибутива XOOPS, ви скопіюєте їх з існуючого сайту
- замість запуску інсталятора ви імпортуєте вже заповнену базу даних
- замість того, щоб вводити відповіді в інсталятор, ви зміните попередні відповіді у файлах і базі даних
Скопіюйте наявні файли сайту
Section titled “Скопіюйте наявні файли сайту”Зробіть повну копію файлів вашого існуючого сайту на вашій локальній машині, де ви зможете їх редагувати. Якщо ви працюєте з віддаленим хостом, ви можете використовувати FTP для копіювання файлів. Вам потрібна копія для роботи, навіть якщо сайт запущено на вашому локальному комп’ютері, у такому випадку просто створіть ще одну копію каталогів сайту.
Важливо не забувати включити каталоги xoops_data і xoops_lib, навіть якщо вони були перейменовані в and/or.
Щоб зробити все більш гладким, ви повинні видалити кеш і зібрані 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
Section titled “Залежності 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, доступний на цільовому хості.
Налаштувати нове середовище
Section titled “Налаштувати нове середовище”Тут також застосовуються ті самі елементи, що описані в розділі Попередня підготовка. Тут ми припустимо, що у вас є будь-який хостинг, який вам знадобиться для сайту, який ви переміщуєте.
Ключова інформація (mainfile.php і secure.php)
Section titled “Ключова інформація (mainfile.php і secure.php)”Успішне переміщення сайту передбачає зміну будь-яких посилань на абсолютні імена файлів і шляхів, URL-адреси, параметри бази даних і облікові дані доступу.
Два файли, mainfile.php у кореневій системі вашого сайту та data/secure.php у каталозі xoops_data вашого сайту (перейменованого на and/or, переміщеного) визначають основні параметри вашого сайту, наприклад його URL, де знаходиться у файловій системі хосту та як він підключається до бази даних.
Вам потрібно буде знати як значення в старій системі, так і які вони будуть у новій системі.
mainfile.php
Section titled “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 | локальний хост | example.com |
Після того як ви змінили mainfile.php, збережіть його.
Цілком можливо, що деякі інші файли можуть містити жорстко закодовані посилання на ваш URL або навіть шляхи. Це більш імовірно в налаштованих темах і меню, але за допомогою вашого редактора ви можете здійснювати пошук у всіх файлах, щоб бути впевненим.
У своєму редакторі виконайте пошук серед файлів у вашій копії, знайшовши старе значення XOOPS_URL і замінивши його новим значенням.
Зробіть те саме для старого значення XOOPS_ROOT_PATH, замінивши всі входження новим значенням.
Зберігайте свої нотатки, оскільки пізніше нам доведеться використовувати їх знову під час переміщення бази даних.
data/secure.php
Section titled “data/secure.php”| Ім’я | Старе значення в data/secure.php | Нове значення в data/secure.php |
|---|---|---|
| XOOPS_DB_HOST | ||
| XOOPS_DB_USER | ||
| XOOPS_DB_PASS | ||
| XOOPS_DB_NAME |
Відкрийте data/secure.php у перейменованому and/or переміщеному каталозі xoops_data у вашому редакторі. Змініть значення для визначень, показаних у таблиці вище, зі старих значень на відповідні значення для нового сайту.
Інші файли
Section titled “Інші файли”Можуть бути інші файли, на які потрібно звернути увагу, коли ваш сайт буде переміщено. Деякі поширені приклади: ключі API для різних служб, які можуть бути прив’язані до домену, наприклад:
- Карти Google
- Recaptch2
- Як кнопки
- Обмін посиланнями на рекламу and/or, як-от Shareaholic або AddThis
Зміну цих типів асоціацій нелегко автоматизувати, оскільки підключення до старого домену зазвичай є частиною реєстрації на стороні служби. У деяких випадках це може просто додати або змінити домен, пов’язаний із службою.
Скопіюйте файли на новий сайт
Section titled “Скопіюйте файли на новий сайт”Скопіюйте змінені файли на новий сайт. Техніка така сама, як і під час Встановлення, тобто за допомогою FTP.
Скопіюйте наявну базу даних сайту
Section titled “Скопіюйте наявну базу даних сайту”Резервне копіювання бази даних зі старого сервера
Section titled “Резервне копіювання бази даних зі старого сервера”Для цього кроку настійно рекомендується використовувати phpMyAdmin. Увійдіть у phpMyAdmin для свого існуючого сайту, виберіть свою базу даних і виберіть Експорт.
Параметри за замовчуванням зазвичай підходять, тому просто виберіть «Метод експорту» у Quick і «Формат» у SQL.
Використовуйте кнопку Go, щоб завантажити резервну копію бази даних.

Якщо у вашій базі даних є таблиці, які не належать до XOOPS або її модулів, і їх НЕ передбачається переміщувати, вам слід вибрати «Метод експорту» Custom і вибрати лише пов’язані з XOOPS таблиці у вашій базі даних. (Вони починаються з «префікса», який ви вказали під час встановлення. Ви можете знайти префікс своєї бази даних у файлі xoops_data/data/secure.php.)
Відновіть базу даних на новому сервері
Section titled “Відновіть базу даних на новому сервері”На новому хості за допомогою нової бази даних відновіть базу даних за допомогою інструментів, таких як вкладка Import у phpMyAdmin (або bigdump, якщо потрібно.)
Оновити URL-адреси та шляхи в базі даних
Section titled “Оновити URL-адреси та шляхи в базі даних”Оновіть усі http-посилання на ресурси вашого сайту у вашій базі даних. Це може потребувати величезних зусиль, і є інструмент, щоб полегшити це.
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
Section titled “Альтернативний підхід без SRDB”Іншим способом виконати цей крок без інструменту srdb було б створити дамп вашої бази даних, відредагувати дамп у текстовому редакторі, змінивши URL-адреси та шляхи, а потім перезавантажити базу даних із відредагованого дампа. Так, цей процес досить складний і несе достатній ризик, щоб люди були мотивовані створити спеціалізовані інструменти, такі як Search-Replace-DB.
Спробуйте свій перенесений сайт
Section titled “Спробуйте свій перенесений сайт”На цьому етапі ваш сайт має бути готовий до роботи в новому середовищі!
Звичайно, завжди можуть бути проблеми. Не бійтеся публікувати запитання на форумах xoops.org.