Что такое «бокс»?

Бокс — это виртуальный выделенный сервер (VDS, Virtual Dedicated Server, или VPS).

Как использовать разные версии PHP в рамках одного бокса?

Предположим, вы установили Debian 8.7. и теперь вам нужно, чтобы одни ваши сайты работали с версией PHP 5.6, которая присутствует в репозитории Debian по умолчанию, а другие, например, с PHP 7.0.

Ок, давайте добавим PHP 7

Для начала установим пакеты, которые потребуются нам в процессе сборки:

apt-get install build-essential autoconf re2c bison libcurl4-openssl-dev libpng-dev libxml2-dev libcurl3

Создадим каталоги, в которых будут храниться исходные тексты и производиться установка собранных пакетов, после чего перейдем в созданный каталог:

mkdir -p /php/src && mkdir /php/php70
cd /php/src

Скачаем исходные тексты PHP:

wget http://php.net/get/php-7.0.16.tar.bz2/from/this/mirror -O php-7.0.16.tar.bz2

Затем распакуем полученный архив и перейдем в каталог с исходными текстами:

tar xjf php-7.0.16.tar.bz2
cd php-7.0.16

Конфигурируем:

./configure --prefix=/php/php70 --enable-fpm --enable-mysqlnd --enable-mbstring --disable-pdo --disable-phar --with-config-file-scan-dir="$instdir"/etc --with-curl --with-gd --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysqli=mysqlnd --with-zlib --without-sqlite3 --without-pdo-sqlite

Компилируем и устанавливаем:

make && make install

Настроим переключение версий PHP в бесплатной панели управления сервером Vesta CP

Включаем модуль cgi для веб-сервера Apache:

a2enmod cgi

Переключение версий будет осуществляться за счет смены шаблонов веб-сервера Apache. Для этого скопируем следующие файлы:

cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php70.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php70.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php70.tpl

Затем отредактируем /usr/local/vesta/data/templates/web/apache2/php70.sh, заменив:

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'

на:

wrapper_script='#!/php/php70/bin/php-cgi -cphp7-cgi.ini'

После этого потребуется перезапуск панели управления Vesta:

service vesta restart

Отлично. Теперь можно выбрать необходимую версию PHP в разделе «WEB» → domain.ru → «EDIT» → «Web Template».

Переключение версий PHP в панели управления ISPmanager

Возможность использования различных версий PHP в панели управления ISPmanager реализована «из коробки», так что если вы используете именно эту панель, никакие дополнительные действия не потребуются.

Для начала установим так называемую альтернативную версию PHP в разделе «Настройки» → «Возможности». Далее перейдем к настройке конкретного сайта в разделе «Домены» → «WWW-домены» → нужный сайт. В пункте «Дополнительные возможности» установим режим работы PHP в положение «CGI», после чего требуемую версию PHP можно будет выбирать из выпадающего списка.

Как перенести данные с моего старого виртуального выделенного сервера?

Если ранее вы использовали классическую услугу аренды VDS, а теперь хотите начать работу с боксами, все необходимые данные и сервисы с вашего виртуального выделенного сервера можно перенести в несколько простых шагов. Чтобы клонировать настроенную операционную систему, просто создайте архив на исходном сервере, а затем распакуйте его на новой виртуальной машине (боксе). Убедитесь в том, что при создании бокса вы выбрали ту же версию ОС, которую использовали на своем прежнем виртуальном сервере.

Для создания архива используем следующую команду, выполненную под пользователем root:

tar cvpzf /backup.tgz --exclude=/media --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

После этого выполняем перенос на целевую систему, к примеру, средствами scp:

scp /backup.tgz user@box-addr:/path/to/file

На целевой системе производим распаковку архива в корневом каталоге:

cd /
mv /path/to/file/backup.tgz .
tar xvzf backup.tgz

После этого останется только исправить IP-адрес и hostname сервера в конфигурационных файлах. Найти их можно, например, следующей командой:

grep -rlE "IP|hostname" . 2>/dev/null

где вместо IP и hostname необходимо подставить соответствующие значения.

Если дисковое пространство исходного виртуального сервера занято более чем наполовину, вместо предложенного выше варианта клонирования вы можете скопировать систему с установленными пакетами отдельно от данных, занимающих много места. Предположим, много места занимают сайты, хранящиеся в /var/www/html/. В этом случае команда для архивации будет выглядеть следующим образом:

tar cvpzf /backup.tgz --exclude=/media --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/var/www/html /

После выполнения всех указанных выше действий, когда система и окружение на боксе будут готовы, можно перенести сайты стандартным способом, создав архив файлов и дамп БД.

Когда мы начали использовать Sprintbox вместо классических VDS от Sprinthost, мы делали именно так, и у вас тоже должно получиться.

Вы всегда можете задать вопрос службе поддержки