Drupal 6 to 7 upgrade - andyceo/documentation GitHub Wiki
Описываем перенос сайта на Drupal 6 на Drupal 7 с одновременным переносом на другой сервер.
-
Создадим список модулей:
#!bash drush pml --status="enabled" --no-core --type="module" --pipeПосмотреть в человекочитаемом виде - убрать
--pipe. Не забывайте, что полученный список - не тот, который можно скормитьdrush dl. -
Создадим список тем:
#!bash drush pml --status="enabled" --no-core --type="theme" --pipeПосмотреть в человекочитаемом виде - убрать
--pipe. Не забывайте, что полученный список - не тот, который можно скормитьdrush dl. -
Развернем модули для Drupal 7:
#!bash drush dl список модулей полученных на предыдущем этапе -
Развернем темы для Drupal 7:
#!bash drush dl список тем полученных на предыдущем этапе -
Поставим старый сайт на обслуживание:
admin/settings/site-maintenance, сохранить форму. -
Создадим дамп базы данных:
#!bash drush sql-dump --result-file="~/example.sql" --gzip -
Создадим дамп файлов (директория
sites/example.com):#!bash tar czf ~/example.tar.gz /var/www/drupal6/sites/example.com -
Скопируем дампы на новый сервак:
#!bash scp -C -p example.sql.gz [email protected]:/home/andyceo/example.sql.gz scp -C -p example.tar.gz [email protected]:/home/andyceo/example.tar.gz -
Разместим файлы из дампа в нужную директорию:
-
Поправим владельца и права на файлы из-за возможности переноса файлов под неправильным пользователем (поменяйте
andyceoна своего пользователя):#!bash sudo chown -R andyceo:andyceo /var/www/drupal7/sites/example.com sudo chmod 755 /var/www/drupal7/sites/example.com sudo chown -R www-data:www-data /var/www/drupal7/sites/example.com/files sudo chmod 755 /var/www/drupal7/sites/example.com/files -
Проставим права на запись для файла
settings.phpдля веб-сервера (или php):#!bash chmod o+w settings.php -
Внесем для нового сайта запись в файл
sites/sites.phpв случае, если имя папки/sites/example.comне является корректным именем домена сайта, а тажке для облегчения развертывания локальной копии сайта#!php <?php $sites = array( // .......... // example.com site 'example.local' => 'example.com', // local copy // .......... ); -
Создадим пользователя и базу данных для сайта:
#!sql CREATE USER 'example'@'localhost' IDENTIFIED BY 'EXAMPLE_PASSWORD'; GRANT USAGE ON *.* TO 'example'@'localhost' IDENTIFIED BY 'EXAMPLE_PASSWORD' 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 `example` CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON `example`.* TO 'example'@'localhost'; -
Распаковать дамп БД, если он был запакован:
#!bash gunzip example.sql.gz -
Зальем дамп в БД сайта Drupal 7):
#!bash mysql --user=example --password=EXAMPLE_PASSWORD --host=localhost example < example.sqlгде
--user=example- имя пользователя БД,--password=EXAMPLE_PASSWORD- пароль пользователя БД,--host=localhost- адрес сервера БД,example- имя БД. -
Создадим виртуальный домен
/etc/apache2/sites-available/exampleсо следующим содержимым:#!apache #example.com <VirtualHost 127.0.0.1:8080> ServerName example.com #ServerAlias www.example.com DocumentRoot /var/www/drupal7 ErrorLog /var/log/apache2/example.error.log LogLevel warn CustomLog /var/log/apache2/example.access.log combined ServerSignature Off </VirtualHost> -
Добавим домен в список хостов Drupal 7 в сервер nginx:
/etc/nginx/sites-available/drupal7 -
Включим сайт для апача и перезагрузим веб-серверы:
#!bash sudo a2ensite example sudo service apache2 reload sudo service nginx reload -
На локальной машине, на которой будем запускать процесс апдейта, нужно временно прописать IP нового сервера для домена
/etc/hosts -
Запустим в браузере процесс апгрейда: http://example.com/update.php
- Уберем права на запись для файла
sites/example.com/settings.php: - Пропишем новые A-записи для домена
- Если включены, выключить модули Poormanscron и CVS Deploy