![Мульти php на VestaCP Ubuntu -картинка]()
- Как работает менеджер версий php?
- Как взаимодействовать с php менеджером?
- Как проверить версию php на сервере и сайте?
Привет читатель, не так давно на просторах интернета наткнулся на
прекрасный скрипт облегчающий внедрение в
VestaCP нескольких версий php. Хочется отметить, что скрипт в первую очередь делался для Debian, но и с Ubuntu так же будет работать (правда с одним но). Сегодня убедимся в работоспособности скрипта на Ubuntu 16.04.
Особенности для Debian: скрипт собирает версии
5.2 и выше.
Особенности для Ubuntu: скрипт собирает версии
5.3 и выше. Для 5.2 выдает ошибку, поэтому, если вам требуется 5.2, используете Debian.
Что нам потребуется:- Операционка Debian или Ubuntu
- Установленная VestaCP
- Модуль апача cgi (установлен по умолчанию)
- SHH доступ к серверу.
Внимание! По всей видимости Deban 9 не поддерживается!
Как работает менеджер версий php в VestaCP?
- Вводим нужные нам версии php через пробел с указанием точного номера (к примеру 5.6 не правильно, 5.6.30 - правильно)
- Потом скрипт просматривает
http://php.net/downloads.php
и http://php.net/releases/
на предмет наличия архивов с указными версиями php. Если находит. то скачивает и распаковывает в /opt/php/src
. Этот этап можно пропустить, если сразу положить исходные файлы в /opt/php/src/bzips
. - Скрипт ставит нужные зависимости, без которых скрипт не может работать. Эта процедура проводится один раз при первом запуске, при последующих ее следует пропускать.
- Создает шаблоны для Apache, которые потом легко можно включить в панеле VestaCP.
Как взаимодействовать с php менеджером?
- Прежде всего загрузим и запустим менеджер под root.
git clone https://github.com/petranikin/mgrvphp.git
cd mgrvphp
bash mgrvphp
- Вводим через пробел нужные версии php (помните:
7.1, 7.1.4), номера версий можно найти на сайте http://php.net/releases, пример ввода указан на скрине ниже.
![VestaCP, несколько версий php или мульти php на Debian и Ubuntu - иллючтрация]()
- Создавать ли ссылки в
/usr/bin
для быстрого доступа к файлам? Видимо скрипт может работать не правильно если не создать ссылки, по этому нажимаем Y. В результате вы получите следующее: ![VestaCP, несколько версий php или мульти php на Debian и Ubuntu - изображение]()
- Создавать шаблон VestaCP для каждой указанной версии? Нажимаем да У.
- Далее вас спросят устанавливать ли зависимости? Тут обязательно жмет да У, т. к. это первый запуск скрипта на сервере.
- После этого остается только ждать. Установка займет какое-то время, много зависит от конфигурации сервера и количества шаблонов (у меня заняло более 30 минут).
- Как только установка завершится можно перейти в панель у установить нужный шаблон.
В списке шаблонов вы скорее всего увидите
php71 и php71-fcgid. Это не ошибка. Просто php71 сделан на основе шаблона Vesta
php-cgi
, а php71-fcgid на основе шаблона
phpfcgid
. Выберите то, что вам больше подходит.
Как проверить версию php на сервере и сайте?
Теперь давайте проверим успешность нашего труда.
- Создаем файл
phpinfo.php
Открываем его текстовым редактором и вводим следующее:<?php
phpinfo();
?>
- Загружаем файл в корень сайта → открываем файл в браузере и смотрим на сменную версию php.
Проверить версию php, установленную по умолчанию, можно с помощью консольной команды:
Выбор версии PHP в VestaCP
Так выглядит проверка версии PHP в браузере.
Скрипт по установки мульти PHP в VestaCP закончил работу.
Данная статья была позаимствована на ресурсе pupi-boy.ru.
Единственная сложность возникшая при использовании данного скрипта в Ubuntu 16.x, был недокачаный файл php-5.6.30.tar.bz2 и как следствие вот такая ошибка.
bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now
/opt/php/src/php-5.6.40/options.sh: No such file or directory
sed: can't read /opt/php/src/php-5.6.40/options.sh: No such file or directory
mgrvphp: line 113: cd: /opt/php/src/php-5.6.40/: No such file or directory
bash: options.sh: No such file or directory
rm: cannot remove '/opt/php/src/php-5.6.40/options.sh': No such file or directory
Размер PHP - php-5.6.30.tar.bz2 должен быть порядка 14-16 мб. Файл был загружен ручками в /opt/php/src/bzips, после чего установка была благополучно завершено.
cd /opt/php/src/bzips
wget https://museum.php.net/php5/php-5.6.30.tar.bz2
Второй фикс который пришлось сделать в Ubuntu 18.04.
При установки php 5.6.30 ошибка
configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
Пофиксил созданием симлинка.
cd /usr/include
sudo ln -s /usr/include/x86_64-linux-gnu/curl curl
Третий фикс скрипта
Ошибка выглядит так:
Makefile:542: recipe for target 'ext/openssl/openssl.lo' failed make: *** [ext/openssl/openssl.lo] Error 1
Для решения данной проблемы надо установит старую версию OpenSSL.
cd /usr/src
wget https://www.openssl.org/source/openssl-0.9.8zb.tar.gz
tar xfvz openssl-0.9.8zb.tar.gz
cd openssl-0.9.8zb
mkdir /usr/local/sslold
./config --prefix=/usr/local --openssldir=/usr/local/sslold
make
make install
Далее нужно внести изменения в файл "options" лежащий в директории со скриптом.
Найти:
--with-openssl=/usr
Заменить на:
--with-openssl-dir=/usr/local/sslold
Запустить скрипт повторно:
bash mgrvphp
Перезагрузив Apache получил мульти PHP в VestaCP.