Здесь шпаргалка по переносу сайтов, работающих под управлением CMS "Bitrix". Принцип легко распространить на любые другие сайты схожего стека технологий, но записка эта создана по мотивам переезда таковых с площадки созданной с год назад, описываемой в соответствующей публикации.
Далее просто и последовательно.
Предварительные работы на принимающей стороне.
Естественно, web-сервер должен быть сконфигурирован и готов к обслуживанию сайтов (например, по упоминаемой выше инструкции).
Подготовим место для приёма переносимых файлов:
# mkdir -p /var/tmp/bitrix0 && chown admin /var/tmp/bitrix0
Копирование данных на принимающий web-сервер.
На время переноса сайты переводятся в "режим обслуживания", чтобы гарантировать консистентность записей "базы данных" и файлов.
Запускаем процедуру копирования файлов сайта (напрашивающаяся для применения утилита "scp" следует за символическими ссылками, а у нас в каждом сайте ссылки на много много-гигабайтные "общие ресурсы", так что используем "tar"):
# cd /var/www/ ; tar cfv - * | ssh admin@web.example.net "(cd /var/tmp/bitrix0; tar xf - )"
Выгружаем "логический дамп" БД, на лету передавая его на целевой web-сервер:
# mysqldump -u root bitrix0 | ssh admin@web.example.net "cat > /var/tmp/bitrix0/bitrix0.sql"
Копируем конфигурационные файлы web-сервера, описывающие переносимые сайты:
# scp -r /etc/nginx/sites-available admin@web-example.net:/var/tmp/bitrix0/sites-available
Выгружаем перечень команд запуска задач пользователя web-сервера по расписанию:
# sudo -u www-data crontab -l | ssh admin@web.example.net "cat > /var/tmp/bitrix0/crontab"
Применение данных проекта на принимающем web-сервере.
Первым делом занесём в БД содержимое "дампа", полученного с исходного web-сервера:
# mysql -u bitrix0 -p bitrix0 < /var/tmp/bitrix0/bitrix0.sql
Размещаем файловые ресурсы сайтов в соответствующей директории web-сервера:
# mv /var/tmp/bitrix0/www/* /var/www
В CMS "Bitrix" сайты разделяющие общее ядро подключаются к нему посредством символических ссылок - не забываем проверить их наличие:
# ln -s /var/www/shared/bitrix /var/www/site.example.net/www/bitrix
# ln -s /var/www/shared/upload /var/www/site.example.net/www/upload
# ln -s /var/www/shared/upload /var/www/site.example.net/www/upload
Явно позволим пользователю, от имени которого запускается web-сервер, читать файлы сайтов:
# setfacl --recursive --no-mask --modify user:www-data:rX /var/www
# setfacl --recursive --no-mask --modify default:user:www-data:rX /var/www
# setfacl --recursive --no-mask --modify default:user:www-data:rX /var/www
Явно переводим файлы сайтов во владение соответствующего пользователя:
# chown -R www-data:www-data /var/www
# chmod -R g+rw /var/www
# chmod -R o-rwx /var/www
# chmod -R g+rw /var/www
# chmod -R o-rwx /var/www
Удовлетворяя требования OpenSSH-сервера, посредством которого мы предоставляем SFTP-доступ к файловым ресурсам сайтов, передаём корневую директорию (не рекурсивно!) web-проектов во владение суперпользователя:
# chown root /var/www
# chmod g-w /var/www
# chmod g-w /var/www
Адаптация конфигурационных файлов.
Практически для всех сайтов параметры подключения к БД и "Memcached" устанавливаются в двух местах - не забываем их там изменить при необходимости:
# vi /var/www/shared/bitrix/.settings.php
# vi /var/www/shared/bitrix/php_interface/dbconn.php
# vi /var/www/shared/bitrix/php_interface/dbconn.php
Не забываем про запускаемые по расписанию задачи (скопированы в файл "/var/tmp/crontab"):
# sudo -u www-data crontab -e
Финальная проверка.
Совместимость конфигурации web-сервера с рекомендациями разработчиков CMS "Bitrix" проверяются на соответствующей страницы панели администрирования:
Администрирование -> Инструменты -> Проверка системы.