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