Перенесення сайту на joomla c з одного хостингу на інший по кроках
Наведемо покрокову інструкцію (технологічна карта) по перенесенню сайту на JOOMLA з одного хостингу на інший на прикладі сайту pulsefitness.ru.
Попередня підготовка. Необхідно з'ясувати пароль для доступу з правом запису в кореневу папку сайту. Доступ потрібен по протоколу FTP, а краще SSH. Ім'я бази даних сайту логін і пароль доступу до бази можна дізнатися з файлу configuration.php.
- Скопіюйте приховані файли з кореневої папки сайту (.htaccess). і файл конфігурації configuration.php.
- Створіть архів системи управління сайту (всі файли і папки сайту починаючи з кореневої)
- З'ясуйте в якому кодуванні працювала база даних сайту.
- Створіть дамп бази даних сайту.
- Скопіюйте дамп бази даних і архів системи управління сайту.
Далі операції виконуються на новому хостингу (у нас в прикладі хостинг віртуальний).
tar і gzip архіватор - створення і витяг архіву сайту
Утиліти tar і gzip присутні в багатьох дистрибутивах Linux за замовчуванням. gzip - архіватор він стискає файли, tar - упаковує файли в один файл.
Наведемо приклад створення архіву сайту (без бази даних):
У цьому прикладі команда tar упаковує всі файли і папки в один файл uesaka.ru.tar, а потім архіватор gzip стискає цей файл в архів uesaka.ru.tar.gz.
Велика перевага такого методу в тому, що tar коректно зберігає всі атрибути файлів і папок - власники, групи користувачів і права доступу.
Увага! Попередня команда не збереже в архіві приховані файли з кореневої директорії, наприклад. htaccess. Скопіюйте приховані файли окремо або скористайтеся командою
де точка вказує на весь поточний каталог, а параметр --exclude = ШАБЛОН дозволяє виключати файли з архіву.
Щоб розпакувати архів сайту, перейдіть в той же каталог і розпакуйте файл архіву:
Кодування символів в MySQL
Сервер баз даних MySQL підтримує кілька рівнів установок кодування символів. Змінні character_set визначають кодування на всьому сервері.
Наступна команда виводить поточні установки змінних character_set:
При створенні бази даних в MySQL може бути задана своя кодування, перевіримо її для бази mysql:
У базі даних MySQL для кожної таблиці може бути задана своя кодування, перевіримо її для таблиці mysql.user:
Якщо при створенні бази даних або таблиці в ній кодування була задана явно, то для бази даних встановлюється кодування з character_set_database, а для таблиці - кодування встановлена в базі даних.
mysqldump створення Резервної копії MySQL бази сайту на JOOMLA
Резервну копію MySQL бази даних можна зробити за допомогою утиліти mysqldump. Також, за допомогою mysqldump можна відновити базу даних MySQL.
Для доступу до бази даних сайту на JOOMLA необхідно дізнатися ім'я користувача MySQL бази, пароль користувача MySQL і, власне, ім'я бази даних.
Пароль до MySQL, ім'я користувача MySQL і ім'я бази даних DB зберігається в файлі конфігурації JOOMLA configuration.php Пароль і ім'я користувача MySQL бази сайту можна дізнатися з командного рядка:
Крім того, по FTP можете завантажити з кореня свого сайту файл configuration.php і в ньому подивитися назву бази даних MySQL, ім'я користувача бази даних і пароль до MySQL базі.
Тепер можна зробити резервну копію бази даних сайту:
В результаті виконання цієї команди буде створено файл uesakaru.sql - повна копія бази даних сайту з інструкціями для її відновлення.
Ключ --skip-opt дозволяє успішно обійти помилку: "mysqldump: Got error: 1044: Access denied for user 'root' @ 'localhost' to database 'uesakaru' when using LOCK TABLES"
Розміщення сайтів на віртуальному хостингу
Створіть адміністратора сайту і папку для вашого сайту, наприклад, uesaka.ru:
Створіть алиас з www для вашого сайту:
Передайте файли Вашого сайту в папку /var/www/uesaka.ru
Права доступу до папки сайту
Зручно якщо на віртуальному хостингу, папка сайту є домашнім каталогом власника сайту.
В такому випадку, власник сайту від свого імені може розміщувати файли в папці сайту і наповнювати сайт. Як бути якщо на Вашому сайті передбачена робота CMS системи (Content Management System)? PHP код на Ubuntu LAMP сервері виконується від імені користувача www-data.
Змініть групу власників кореневої папки сайту.
Дозвольте членам групи запис в кореневу папку вашого сайту.
Увійдіть в систему з ім'ям користувача власника сайту і перейдіть в кореневу папку свого сайту (uesaka.ru).
Як розпакувати архів сайту від імені www-data
Якщо необхідно розпакувати архів сайту від імені www-data, створіть в корені сайту файл unzip.php:
Запустіть файл unzip.php через браузер і всі файли і папки сайту будуть розпаковані.

Після вилучення сайту з архіву, видаліть файл unzip.php і, може бути, сам архів:
Відновлення MySQL бази даних сайту на JOOMLA
Відновлювати MySQL базу даних сайту будемо в консолі MySQL на новому хостингу. Створимо на новому хостингу базу даних з тим же ім'ям, що і було раніше (uesakaru), і відновимо в неї базу даних сайту з файлу резервної копії uesakaru.sql.
Увійти в консоль MySQL дозволяє Linux команда mysql. Її параметрами є ім'я користувача бази даних і назва бази даних.
Увійдіть в консоль MySQL з ім'ям користувача root, підключившись до бази mysql
Введіть пароль користувача root, не плутати з root користувачем Linux.
CREATE DATABASE створення бази даних
Команда MySQL CREATE DATABASE дозволяє створити базу даних, параметр CHARACTER SET дозволяє вказати в якому кодуванні створювати базу.
Приклад, створіть базу даних uesaka:
При необхідності, з'ясуйте в якому кодуванні працювала стара база та вкажіть кодування при створенні нової бази:
SOURCE відновлення MySQL бази даних з резервної копії
MySQL команда SOURCE дозволяє завантажити з резервної копії в базу даних все таблиці з даними і налаштувати базу MySQL з оригінальними параметрами.
Припустимо у нас є резервна копія бази даних сайту uesaka.ru, файл uesakaru.sql. Відновимо цю базу на новому хостингу.
Увійдіть в нову базу
Завантажте в нову базу всі дані з резервної копії:
Резервна копія створена, але її власник root. На старому сайті власником бази можливо був інший Юзер. Ще гірша ситуація, якщо на старому сайті власником MySQL бази також був root але з іншим паролем.
У будь-якому випадку, необхідно змінити ім'я користувача і пароль MySQL бази сайту і вказати відповідні ім'я користувача MySQL бази і його пароль у файлі конфігурації JOOMLA.
Як змінити користувача MySQL бази даних в JOOMLA
В налаштуваннях, за замовчуванням, користувачем MySQL бази в системі управління контентом сайту JOOMLA є користувач root, до того ж ще й без пароля.
Така ситуація не сприяє безпеці сайту і в цілому WEB-сервера. У такого сайту на JOOMLA можуть виникнути труднощі при зміні хостингу.
Необхідно змінити пароль і користувача MySQL бази в файлі конфігурації JOOMLA і на MySQL сервері.
Спочатку змініть пароль MySQL в файлі конфігурації JOOMLA. У корені свого сайту (uesaka.ru) відредагуйте файл configuration.php:
Тепер зробіть відповідні зміни в MySQL консолі:
Увійти в консоль MySQL дозволяє Linux команда mysql. Її параметрами є ім'я користувача бази даних і назва бази даних.
Увійдіть в консоль MySQL з ім'ям користувача root, підключившись до бази mysql
Введіть пароль користувача root, не плутати з root користувачем Linux.
Як створити нового користувача бази даних MySQL і встановити для нього пароль?
Консольна команда MySQL GRANT ALL PRIVILEGES дозволяє визначити нового власника бази даних MySQL і задати для нього пароль.
Наприклад, ми хочемо для бази uesakaru призначити власника uesakasqluser @ localhost (на локальному комп'ютері) і встановити пароль до MySQL базі 123: