Уровень детализации этой инструкции предполагает наличие у вебмастера базовых знаний по SSH, а также доступа по SSH к обоим серверам.
Обзор
Этапы переноса:
- Подготовка dump файла MySQL базы данных
- Архивация директорий media и theme
- Копирование файлов на сервер
- Установка Magento
- Импортирование dump файла в новую базу даных
- Размещение скопированных данных по директориям Magento
Старый сервер
Залогиньтесь на сервер, который содержит систему управления Magento, предназначенную к переносу. Перейдите в директорию, где установлен Magento. В данной инструкции далее будет использован путь:
-
/home/username/public_html/
и директория public_html будет считаться корневым каталогом для вашего домена.
Для проверки создайте файл test.html в public_html, и проверьте его доступность из интернета:
-
http://www.example.com/test.html
Перейдите в директорию, где установлена Magento, по команде :
На уровень выше директории public_html создайте новую директорию backup, пользуясь командой:
MySQL Dump
Создание dump файла MySQL существующей базы данных:
-
mysqldump -h DBHOST -u DBUSER -pDBPASS DBNAME > data.sql
Замените переменные соответствующими значениями:
- DBHOST - имя хоста, обычно localhost
- DBUSER - имя пользователя с правами доступа к базе данных.
- DBPASS - пароль пользователя
- DBNAME - название базы данных, которое использует Magento
Внимание: Если вы используете MySQL 4.x, вам необходимо включить опцию :
-
--default-character-set=utf8
Переместите файл data.sql в директорию backup, которую создали ранее:
Директория Media
Сожмите данные директории media:
-
tar -cvf media.tar media/*
Переместите полученный файл в директорию backup:
Файлы тем (Theme)
Следующим шагом подготовьте для переноса содержание директорий app и skin:
-
cd app/design/frontend/default/
Предполагается, что текущая тема содержится в директории mytheme (при необходимости замените на соответствующую).
Сожмите директорию:
-
tar -cvf app.tar mytheme/
Переместите полученный файл в директорию backup:
-
mv app.tar ../../../../backup/
Перейдите в директорию skin:
-
cd ../../../../skin/frontend/default/
Сожмите директорию mytheme:
-
tar -cvf skin.tar mytheme/
Переместите полученный файл в директорию backup:
-
mv skin.tar ../../../backup/
Вернитесь на верхний уровень:
Файл Config
Файл содержит зашифрованные ключи, имя пользователя и пароль для доступа к базе данных. Если данные параметры серверов не совпадают, необходимо отредактировать файл(local.xml).
Скопируйте файл:
-
cp app/etc/local.xml backup/
На этом этапе - все данные для переноса готовы.
Директория backup должна содержать:
- local.xml
- app.tar
- data.sql
- media.tar
- skin.tar
Новый сервер
Перейдите в директорию public_html, в которой будет стоять Magento:
Проверьте может ли новый сервер запускать Magento, для этого создайте файл magento-check.php в директории public_html следующего содержания:
-
<?
-
extension_check(array(
-
'curl',
-
'dom',
-
'gd',
-
'hash',
-
'iconv',
-
'mcrypt',
-
'pcre',
-
'pdo',
-
'pdo_mysql',
-
'simplexml'
-
));
-
-
function extension_check($extensions) {
-
$fail = '';
-
-
if(version_compare(phpversion(), '5.2.0', '<')) {
-
$fail .= '<li>PHP 5.2.0 (or greater)</li>';
-
}
-
-
if(!ini_get('safe_mode')) {
-
if(preg_match('/[0-9].[0-9]+.[0-9]+/', shell_exec('mysql -V'), $version)) {
-
if(version_compare($version[0], '4.1.20', '<')) {
-
$fail .= '<li>MySQL 4.1.20 (or greater)</li>';
-
}
-
}
-
}
-
-
foreach($extensions as $extension) {
-
if(!extension_loaded($extension)) {
-
$fail .= '<li>'.$extension.'</li>';
-
}
-
}
-
-
if($fail) {
-
echo '<p>Your server does not meet the requirements for Magento.';
-
echo 'The following requirements failed:</p>';
-
echo '<ul>'.$fail.'</ul>';
-
} else {
-
echo '<p>Congratulations! Your server meets the requirements for Magento.</p>';
-
}
-
}
-
?>
Далее запросите браузером адрес:
http://www.example.com/magento-check.php
Если вы увидите надпись: "Congratulations! Your server meets the requirements for Magento.", - значит сервер готов к работе с Magento.
Включите на веб сервере модуль mod_rewrite для этого добавьте строчку в конфиг апача httpd.conf строчку:
-
LoadModule mod_rewrite modules/mod_rewrite.so
для сервера на базе Ubuntu это делается спомощью команды
Разрешите менять конфигурацию апача с помощью файлов .htaccess для этого в конфигурационном файле веб-сервера нужно заменить строчки AllowOverride None на AllowOverride All для директории /home/username/public_html/ и не забудьте перезапустить сервер с новыми настройками!.
Создайте директорию backup:
Перейдите в директорию:
Копирование файлов
По команде:
-
wget http://www.example.com/backup/local.xml
-
wget http://www.example.com/backup/app.tar
-
wget http://www.example.com/backup/data.sql
-
wget http://www.example.com/backup/media.tar
-
wget http://www.example.com/backup/skin.tar
Теперь все данные готовы и скопированы и можно приступать к установке чистой Magento.
Вернитесь в директорию public_html:
Установка Magento
Следуя командам:
-
wget http://www.magentocommerce.com/downloads/assets/1.2.1.2/magento-1.2.1.2.tar.gz
-
tar -zxvf magento-1.2.1.2.tar.gz
-
mv magento/* magento/.htaccess .
-
mv php.ini.sample php.ini
-
chmod o+w var var/.htaccess app/etc
-
chmod -R o+w media
Создание базы данных
-
CREATE USER 'DBUSER'@'DBHOST' IDENTIFIED BY 'DBPASS';
-
GRANT USAGE ON * . * TO 'DBUSER'@'DBHOST' IDENTIFIED BY 'DBPASS'
-
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
-
CREATE DATABASE IF NOT EXISTS `DBNAME`;
-
GRANT ALL PRIVILEGES ON `DBUSER` . * TO 'DBUSER'@'DBHOST';
Импорт базы данных
По команде:
-
mysql -h DBHOST -u DBUSER -pDBPASS DBNAME < backup/data.sql
PEAR Downloader
Запустите PEAR и Magento обновит все необходимые данные в базе данных:
-
./pear mage-setup .
-
./pear install magento-core/Mage_All_Latest
Очистите данные:
-
rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*
-
rm -rf magento/ magento-1.2.1.2.tar.gz
-
rm -rf index.php.sample .htaccess.sample STATUS.txt
Перенос Media и Theme
Переместите файлы:
-
cp backup/app.tar app/design/frontend/default/
-
cp backup/skin.tar skin/frontend/default/
-
cp backup/media.tar media/
Разархивируйте файлы:
-
cd app/design/frontend/default/
-
tar -xvf app.tar
-
rm -rf app.tar
-
cd ../../../../skin/frontend/default/
-
tar -xvf skin.tar
-
rm -rf skin.tar
-
cd ../../../media/
-
tar -xvf media.tar
-
rm -rf media.tar
-
cd ..
Перенос файла Config
Переместите файл:
-
mv backup/local.xml app/etc/
Проверьте, работает ли сайт на Magento.
Удалите директорию:
Альтернативный метод
Сожмите всю директорию public_html вместе со всеми файлами Magento:
-
tar -cvf backup.tar public_html/
Скачайте и разархивируйте на новом сервере Magento:
Переместите файлы:
-
mv public_html/* public_html/.htaccess .
Переместите директорию:
Создайте новую базу данных MySQL и импортируйте dump-файл в неё.
-
CREATE USER 'DBUSER'@'DBHOST' IDENTIFIED BY 'DBPASS';
-
GRANT USAGE ON * . * TO 'DBUSER'@'DBHOST' IDENTIFIED BY 'DBPASS'
-
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
-
CREATE DATABASE IF NOT EXISTS `DBNAME`;
-
GRANT ALL PRIVILEGES ON `DBUSER` . * TO 'DBUSER'@'DBHOST';
-
mysql -h DBHOST -u DBUSER -pDBPASS DBNAME < backup/data.sql
Откройте новую базу данных с phpMyAdmin , перейдите на [mage]core_config_data table, и отредактируйте:
web/unsecure/base_url
web/secure/base_url (config_id’s 2 and 3)
в соответствии с новым URL Magento сервера.
Отредактируйте файл local.xml (app/etc/local.xml), если он отличается от старого (но оставьте значение прежним : security/encryption key).
Очистите директорию:
Установите разрешения:
-
chmod o+w var var/.htaccess app/etc
-
chmod -R o+w media
Проверьте, работает ли сайт на Magento на новом сервере.
источник http://bashlov.ru