О том как переносить сайт на Joomla написано много и писать об этом подробно еще раз я не буду, но одну тонкость с которой я столкнулся при переносе сайта в пределах двух хостингов rucenter я должен написать.
Как и положено первым делом я слил через ftp сайт на свой комп, вторым шагом с помощью myadminphp я экспортировал базу joomla в файл. Далее я залил сайт на новый хостинг и с помощью myadminphp попробовал импортировать базу из файла. Вот тут то я и наткнулся на проблему, сталкнулся с ошибкой
#1044 - Access denied for user 'user_name'@'%' to database 'db_name'
Как выяснилось в фале созданном при экспорте есть команда на создание базы на новом хостинге, но права принадлежат пользователю создавшему файл. Во-первых такого пользователя на новом хостинге создать нельзя, во-вторых база уже создана и такая команда в принципе не нужна. Поэтому берем и удаляем ее из файла. В начале файла ищем CREATE DATABASE и превращаем строку в комментарий.
После этого база успешно создается на новом хостинге.
Последний шаг правка configuration.php
Путь к папке логов:
var $log_path = ‘/home/yoursite/public_html/logs’; (это примерный вариант, какой должен быть точно – нужно уточнить в панели управления хостинга, ищите надпись “домашний каталог” или “абсолютный путь до корня сайта”)
Путь к папке с временными файлами:
var $tmp_path = ‘/home/proksima/public_html/tmp’;
Доступ по FTP:
var $ftp_host = ’111.1.111.11′;
Имя пользователя FTP:
var $ftp_user = ‘user’;
Пароль для FTP:
var $ftp_pass = ‘password’;
Корневой каталог FTP:
var $ftp_root = ‘/public_html’;
Хост базы данных (чаще всего это localhost, но бывают и варианты, уточняйте в настройках, выданных хостером):
var $host = ‘localhost’;
Имя пользователя базы данных (которого мы создали совсем недавно):
var $user = ‘base_user’;
Имя базы данных:
var $db = ‘mysql_base’;
Пароль к базе данных:
var $password = ‘password’;
И вот тут то произошла реальная беда! Файл configuration.php я исправил редактором в админке rucenter, а этот мерзкий редактор внес в начало символ "?", которого в нем категорически быть недолжно. В результате сайт заработал, но сконфигурился с ошибками. Включив отображение ошибок php я получил сообщение об ошибке "Cannot send session cache limiter - headers already sent". Но посчитал это ернудой. Второе что обнаружил это то что в Virtuemart пропали изображения, точнее появились пустые изображения, т.е. Virtuemart потерял к ним путь. Что удивительно путь в самом VM был указан точно. Я искал причину, долго гугулил, нашел кучу тем в которых есть вопрос но нет ответа. В итоге я решил для начала решить первую задачу, устранить ошибку "Cannot send session cache limiter - headers already sent". Сохранив configuration.php в правильном формате utf8 без БОМ решились обе задачи.
Ура!