У меня как и у многих вебмастеров с появлением новой версии PHP а точнее PHP7 появилась необходимость повысить версию PHP на своем сервере до 7.х, все дело в том, что я полный чайник в серверах знаю несколько команд и на этом мои познания заканчиваются. Я очень долго искал на просторах интернета именно то, что может помочь таким чайникам как я. Проанализировав кучу материала понял одно, руками я только сломаю сервер. И в конце концов мне улыбнулась удача я не просто нашел рабочий скрипт для моей системы (UBUNTU) ко всему прочему он умеет делать мультиверсионность PHP версий для панели управления VESTA CP. На свой страх и риск я дрожащими руками все же запустил его и примерно через 40 минут на моем сервере в панели управления VESTA у меня для каждого сайта появился выпадающий список для выбора версий PHP которые я установил. От меня потребовалось только ввести три команды и три или четыре подтверждения. Разработчик предупреждает скрипт делался в первую очередь для Debian и проверялся на Debian 8 x64. Но работает и на Ubuntu x64. На debian 7/8 без проблем собираются php 5.2 и выше. На ubuntu 14.04/16.04 по умолчанию собираются php 5.3 и выше.
Что делает скрипт:
- При запуске спрашивает какие версии php требуется собрать(версию нужно вводить полностью. Например 7.1.2, а не 7.1. Можно ввести несколько версий через пробел), создавать ли на бинарник php-cgi симлинк в /usr/bin для быстрого доступа. Проверяет наличие на сервере панели vestacp. Если находит её, то спрашивает создавать ли шаблон web для каждой версии.
- При первом запуске спрашивает, нужно ли ставить зависимости. Если вы откажетесь от установки зависимостей, то вам нужно их установить самостоятельно. Иначе при сборке вы получите ошибки. При последующих запусках этот шаг пропускается. Нужно понимать что скрипт старается поставить все возможные зависимости, но в разных дистрибутивах могут использоваться разные пакеты или при использовании кастомных флагов компиляции может потребоваться что-то доустановить.
- Парсит http://php.net/downloads.php и http://php.net/releases/ на наличие bz2 архива с исходниками указанной юзером версии php. Если находит, скачивает и распаковывает исходники в /opt/php/src.
Подробнее
Также можно положить архивы с иходниками в /opt/php/src/bzips, тогда скрипт не будет их скачивать. - Конфигурит, по умолчанию с моими параметрами компиляции(подойдут для большинства пользователей). Собирает.
Тем кто хочет использовать свои параметры компиляции обязательно кликнуть сюда
Можно свои параметры конфигурирования положить в файл /opt/php/options. Если скрипт находит этот файл, то он использует его для конфигурирования. Свой файл можно сделать на основе . Скрипт заменяет в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=/opt/php/php-version, то это по сути равно prefix=/opt/php/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог. - При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi в апаче. Если модуль не включен, то включает его.
Скрипт запускается очень просто
- git clone https://github.com/petranikin/mgrvphp.git
- cd mgrvphp
- bash mgrvphp
[device_slider source="media: images/gallery/vibor-versii-php/1.png,images/gallery/vibor-versii-php/2.png,images/gallery/vibor-versii-php/3.png,images/gallery/vibor-versii-php/4.png,images/gallery/vibor-versii-php/5.png,images/gallery/vibor-versii-php/6.png" limit="6" arrows="yes" pagination="yes" autoplay="no" loop="no" delay="10"]
Важно!
После этого Вы можете создать файл php.ini в директории /opt/php/php-*версия*/etc/
А также в весте можно создать свой php.ini для каждого сайта в директории /home/*пользователь*/web/*домен*/cgi-bin/php5-cgi.ini
Еще раз повторюсь разработчик выложил свой скрипт осбалютно бесплатно.
Первоисточник: https://anikin.pw/all/menedzher-versiy-php