1. Уважаемый Гость, обязательно перед созданием нового сообщения на нашем форуме - прочтите наши правила.
    Dear Guest, before creating a new message on our forum - please read our rules.
  2. Наш аварийный блог находится по адресу storenull.blogspot.com Если вдруг наш сайт (nullstore.pw) стал недоступен - заходите на наш аварийный блог, чтобы узнать все актуальные новости о работе главного сайта.
    Скрыть объявление
  3. Гость, Платное повышение прав дает вам возможность просматривать любые темы и сообщения на данном форуме. Подробности: здесь
    Гость, The VIP membership gives you the rights to view any topics and messages on this forum. Details: here
  4. For English users - please set the English language here

HowTo VestaCP - Менеджер версий php для Debian/Ubuntu

Тема в разделе "Administration", создана пользователем localrow, 25 мар 2017.

  1. localrow

    localrow New member

    Регистрация:
    24 ноя 2015
    Сообщения:
    14
    Симпатии:
    4
    Менеджер версий php для Debian/Ubuntu.

    Выкладываю мой скрипт который поможет установить несколько версий php из исходных кодов на ваш сервер. Скрипт делался в первую очередь для Debian и проверялся на Debian 8 x64. Но работает и на Ubuntu. Удобно с помощью скрипта поддерживать актуальные версии php на сервере с вестой, т.к скрипт умеет автоматически обновлять шаблоны весты при сборке.
    На debian 7/8 с моими флагами установки без проблем собираются php 5.2 и выше.
    На ubuntu 14.04/16.04 по умолчанию собираются php 5.3 и выше. 5.2 при компиляции валится с ошибкой. Поэтому если нужен 5.2 юзайте дебиан.
    Что делает скрипт:

    1. При запуске спрашивает какие версии php требуется собрать(версию нужно вводить полностью. Например 7.1.2, а не 7.1. Можно ввести несколько версий через пробел), создавать ли на бинарник php-cgi симлинк в /usr/bin для быстрого доступа. Проверяет наличие на сервере панели vestacp. Если находит её, то спрашивает создавать ли шаблон web для каждой версии.
    2. При первом запуске спрашивает, нужно ли ставить зависимости. Если вы откажетесь от установки зависимостей, то вам нужно их установить самостоятельно. Иначе при сборке вы получите ошибки. При последующих запусках этот шаг пропускается. Нужно понимать что скрипт старается поставить все возможные зависимости, но в разных дистрибутивах могут использоваться разные пакеты или при использовании кастомных флагов компиляции может потребоваться что-то доустановить.
    3. Парсит http://php.net/downloads.phpи http://php.net/releases/ на наличие bz2 архива с исходниками указанной юзером версии php. Если находит, скачивает и распаковывает исходники в /opt/php/src. Также можно положить архивы с иходниками в /opt/php/src/bzips, тогда скрипт не будет их скачивать.
    4. Конфигурит, по умолчанию с моими параметрами компиляции(подойдут для большинства пользователей). Собирает.
      Тем кто хочет использовать свои параметры компиляции обязательно читать далее - Можно свои параметры конфигурирования положить в файл /opt/php/options. Если скрипт находит этот файл, то он использует его для конфигурирования. Свой файл можно сделать на основе моего.
    Код:
    ./configure \
    --prefix=/opt/php/php-version \
    --with-config-file-path=/opt/php/php-version/etc \
    --with-regex=php \
    --disable-rpath \
    --disable-static \
    --with-pic \
    --with-layout=GNU \
    --enable-calendar \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-sysvmsg \
    --enable-bcmath \
    --with-bz2 \
    --enable-ctype \
    --with-cdb \
    --with-iconv \
    --enable-exif \
    --enable-ftp \
    --with-gettext \
    --enable-mbstring \
    --with-onig=/usr \
    --with-pcre-regex=/usr \
    --enable-shmop \
    --enable-sockets \
    --enable-wddx \
    --with-libxml-dir=/usr \
    --with-zlib \
    --with-kerberos=/usr \
    --with-openssl=/usr \
    --enable-soap \
    --enable-zip \
    --with-mhash=yes \
    --with-mysql-sock=/var/run/mysqld/mysqld.sock \
    --with-mysql=mysqlnd \
    --with-mysqli=mysqlnd \
    --enable-pdo \
    --with-pdo-mysql=mysqlnd \
    --enable-exif \
    --with-jpeg-dir=/usr \
    --with-png-dir=/usr \
    --with-freetype-dir=/usr \
    --with-zlib-dir=/usr \
    --with-mcrypt=/usr \
    --with-mhash \
    --with-xsl=/usr \
    --enable-zip \
    --enable-cgi \
    --with-curl \
    --with-gd \
    --enable-pcntl \
    --enable-mbregex \
    --enable-gd-native-ttf \
    --with-libdir=lib64 \
    --enable-dba=shared \
    --with-readline=/usr \
    --enable-simplexml \
    --with-libdir=/lib/x86_64-linux-gnu \
    --with-config-file-scan-dir=/opt/php/php-version/etc/conf.d \
    --with-pspell
    

    Скрипт заменяет version в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=/opt/php/php-version, то это по сути равно prefix=/opt/php/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог.[/SPOILER]

    • При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi в апаче. Если модуль не включен, то включает его.

    Запустить скрипт очень просто
    Код:
    git clone https://github.com/petranikin/mgrvphp.git
    cd mgrvphp
    bash mgrvphp
    Добавление модулей (на примере Ioncube Loader)
    После установки и компиляции, например, php 5.4.45, нам нужно добавить какой-либо модуль и, например, нам нужен модуль Ioncube Loader:
    Скачиваем и распоковываем модуль для Linux версии x64:
    Код:
    cd /tmp
    wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
    tar xfz ioncube_loaders_lin_x86-64.tar.gz
    или для Linux версии x86:
    Код:
    cd /tmp
    wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
    tar xfz ioncube_loaders_lin_x86.tar.gz
    Копируем папку ioncube в /usr/local/ioncube
    редактируем файл
    /opt/php-5.4.45/etc/conf.d/ext.ini
    в нем строку приводим к следующему значению:
    Код:
    zend_extention = /usr/local/ioncube/ioncube_loader_lin_5.4.so
    Немного скриншотов
    [​IMG]

    [​IMG]
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление