Joomla — одна из популярнейших CMS, и её перенос имеет свою специфику. Самый надёжный способ — использовать расширение Akeeba Backup, которое создаёт полный пакет для восстановления одним кликом.
Метод 1: Akeeba Backup (рекомендуется)
Создание бэкапа
- Установите Akeeba Backup из Joomla Extension Directory
- В панели Joomla: Components → Akeeba Backup → Backup Now
- Скачайте созданный
.jpaархив иkickstart.php
Восстановление на новом хостинге
# Загрузить через FTP на новый хостинг:
# - kickstart.php
# - backup.jpa
# Открыть в браузере:
https://new-server/kickstart.php
Kickstart автоматически распакует архив, восстановит БД и настроит configuration.php.
Метод 2: Ручной перенос
Шаг 1: Бэкап файлов и БД
# Архивировать файлы Joomla
tar -czf joomla-files.tar.gz /var/www/example.com/
# Экспортировать БД
mysqldump -u joomlauser -p joomladb > joomla-backup.sql
Шаг 2: Перенос на новый сервер
rsync -avz /var/www/example.com/ root@new-server:/var/www/example.com/
scp joomla-backup.sql root@new-server:/tmp/
# На новом сервере
mysql -u newuser -p newdb < /tmp/joomla-backup.sql
Шаг 3: Обновление configuration.php
# /var/www/example.com/configuration.php
public $host = 'localhost'; // Хост БД
public $db = 'newdb'; // Имя новой БД
public $user = 'newuser'; // Пользователь новой БД
public $password = 'NewDBPass'; // Пароль новой БД
public $live_site = ''; // Оставить пустым
public $log_path = '/var/www/example.com/administrator/logs';
public $tmp_path = '/var/www/example.com/tmp';
Обновление URL в базе данных
# Если новый домен отличается от старого
# В phpMyAdmin выполнить SQL:
UPDATE jos_domains SET domain = 'new-domain.com'
WHERE domain = 'old-domain.com';
# Или через Joomla: System → Global Configuration → Site URL
Чеклист после переноса Joomla
- Войти в /administrator — убедиться что панель работает
- Проверить главную страницу и несколько категорий
- Проверить изображения (media manager)
- Протестировать формы обратной связи
- Очистить кеш: System → Clear Cache
- Проверить расширения на совместимость с PHP-версией
URL rewriting: После переноса на Nginx проверьте файл
.htaccess — Joomla использует mod_rewrite для SEF URL. На Nginx нужен аналогичный try_files в конфиге. Включите SEF URLs в Joomla: System → Site → SEO Settings.
Права на файлы: После переноса установите правильные права. Если использовать слишком мягкие права — это угроза безопасности:
find /var/www/example.com -type d -exec chmod 755 {} \;
find /var/www/example.com -type f -exec chmod 644 {} \;
chmod 640 configuration.php