Связаться со мной:
7 заметок с тегом

vestacp

Менеджер версий 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. Если скрипт находит этот файл, то он использует его для конфигурирования. Свой файл можно сделать на основе моего. Скрипт заменяет version в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=/opt/php/php-version, то это по сути равно prefix=/opt/php/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог.
  5. При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi в апаче. Если модуль не включен, то включает его.

Запустить скрипт очень просто

# git clone https://github.com/petranikin/mgrvphp.git
# cd mgrvphp
# bash mgrvphp

Немного скриншотов

2017   debian   mgrvphp   php   php7   phpmgr   ubuntu   vesta control panel   vestacp

Шаблон VDS с VestaCP c мультиверсионностью PHP

На наших VDS теперь доступен готовый шаблон Debian 8 с предустановленной панелью VestaCP и уже собранными версиями PHP от 5.2 до 7.1 включительно. Версию PHP можно выбирать свою для каждого сайта. Заказать VDS можно по этой ссылке. После выдачи VDS нужно зайти в панель управления VDS, кликнуть «Переустановка VDS» и выбрать шаблон «debian-8-X86_64-vestacp_multiphp»

Пароль пользователя admin в весте, совпадает с паролем root.

2017   php   php7   vesta control panel   vestacp

Миграция с ISPManager 4 на VestaCP

Выкатываем в паблик скрипт миграции с ISPManager 4 на VestaCP.
Обращаем ваше внимание, что:

  • копирование данных скриптом isp2vesta возможно тогда и только тогда, когда на сервере установлены nginx в качестве прокси и apache в качестве основного веб-сервера
  • на исходном сервере с ISPmanager никакие данные не изменяются, пакеты и программы не устанавливаются.
  • при копировании без указания пользователя переносятся все пользователи ISPmanager, включая отключенных
  • Копирование реселлеров из ISPManager PRO не происходит в виду отсутствия этого функционала в VestaCP пути пользователей ISPManager используются дефолтные: /var/www/USERNAME
  • для копирования данных необходимо, чтобы на исходном сервере работал SSH на 22 порту и у вас был доступ к серверу root
  • для копирования баз данных MySQL необходимо, чтобы на исходном сервере работал MySQL
  • для копирования не нужна действующая лицензия ISPManager, так как её функционал для переноса не используется

Скрипт миграции можно взять на гитхаб

Запускать так:

# bash isp2vesta IP-ADDRESS ROOT-PASSWORD [имя пользователя]

При запуске без параметров копируются ВСЕ пользователи.
При запуске с параметром

all-enabled-users

копируются все активные пользователи.
При запуске с параметром

all-disabled-users

копируются все не активные пользователи.

исходная ссылка
В общем тестируйте, о проблемах сообщить можно в скайпе.

P.S. Я ещё добавляю вот эти модули перед миграцией

# a2enmod actions
# a2enmod cgi
# a2enmod authz_groupfile

ещё P.S. Новогодняя акция: мы оказываем помощь по переносу ваших сайтов из панели ISPManager 4 на VestaCP при покупке сервера линеек 1, 2, 3 за дополнительную плату, но компенсируем вам затраты, предоставив второй месяц аренды сервера бесплатно.

2016   isp   isp-manager   ispmanager   ispmgr   vesta control panel   vestacp

Добавление кучи ip в vestacp

Создаем скрипт со следующим содержимым

#!/bin/bash
export VESTA=/usr/local/vesta/
file="/root/ip.txt"
while read line
do
/usr/local/vesta/bin/v-add-sys-ip $line 255.255.255.255 eth0
done < $file

В /root/ip.txt кладем список ip построчно.
Делаем скрипт исполняемым и запускаем. IP добавлены на сервер в весте.

2016   ip   vesta control panel   vestacp

Мультиверсионность php на CentOS с VestaCP.

В комментариях к статье Мультиверсионность php на сервере с VestaCP один из читателей попросил написать статью как сделать тоже самое на CentOS. Я уже приготовился писать статью про компиляцию php из исходников, но почитав форум весты увидел что все уже сделано за меня.

На официальном форуме VestaCP есть скрипт, который добавляет репозиторий с уже собранными версиями php 5.5, 5.6 и 7.0. По умолчанию в CentOS 6.8 установлен php 5.4. В итоге после установки скрипта мы имеем все версии php начиная от 5.4.

Установка супер простая

# wget http://mirror.skamasle.com/vestacp/PHP/sk-phpinstaller_beta02_3.sh
# bash sk-phpinstaller_beta02_3.sh

Вывод установщика не очень многословен

После установки при редактировании виртуального хоста в web-шаблонах мы видим что появились новые пункты с новыми версиями php.

Пробуем переключится и смотрим phpinfo

Как видим, все работает. За скрипт спасибо пользователю с ником skamasle.

2016   php   php7   vesta control panel   vestacp

Мультиверсионность php на сервере с VestaCP.

Можно использовать скрипт который упрощает установку разных версий php
Сделаем возможность использовать несколько разных версий php на одном сервере c Ubuntu 14.04 и VestaCP. Возможность переключать версию php будет для каждого сайта отдельно. По умолчанию в ubuntu 14.04.4 с вестой установился php 5.5.

Все действия производятся под root’ом.
Соберем старый php 5.4.
Установим необходимые пакеты.

apt-get build-dep -y php5
apt-get install libt1-dev libonig-dev libmcrypt-dev libreadline-dev

Создаем каталог для исходников

mkdir /php/
mkdir /php/src

Скачиваем туда сорцы с http://php.net.

wget -O /php/src/php-5.4.45.tar.bz2 http://de1.php.net/get/php-5.4.45.tar.bz2/from/this/mirror
cd /php/src/
tar -xjf php-5.4.45.tar.bz2
cd php-5.4.45

И создаем каталог куда будем собирать php

mkdir /php/php54

Конфигурим(обратите внимание на переменную —prefix=, она указывает на каталог куда собираем php)

./configure \
--prefix=/php/php54 \
--with-config-file-path=/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-t1lib \
--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 \
--enable-intl \
--with-readline=/usr \
--enable-simplexml \
--with-libdir=/lib/x86_64-linux-gnu \
--with-config-file-scan-dir="$instdir"/etc \
--with-pspell

Компиляем

make
make install

Включаем модуль cgi для апача

a2enmod cgi

Переключать будем шаблонами apache. Скопируем существующий шаблон phpcgi

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

Открываем файл /usr/local/vesta/data/templates/web/apache2/php54.sh и находим там строку

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

заменяем на

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

И перезапускаем весту

service vesta restart

Теперь если зайти в весте в редактирование домена в web, то в шаблонах апача можно увидеть новый шаблон php54. Можно попробовать переключится.

Аналогично собираем php 5.6 и php 7.0, в каталоги /php/php56 и /php/php70 соответсвенно. И создаем для них шаблоны php56 и php70. Конфигурирование для php7 несколько отличается от php5. Мои параметры для конфигурирования есть в этой статье.

В результате этих манипуляций у нас появятся новые шаблоны php54, php56 и php70, с соответсвующими версиями php. Теперь для каждого домена мы можем выбрать любую версию php от 5.4 до 7.0. С выходом новых версий их можно добавлять к текущим таким же способом.

2016   php   php7   ubuntu   vesta control panel   vestacp

Обзор бесплатной панели управления хостингом VestaCP

Сегодня я хочу рассказать о панели хостинга VestaCP. Это бесплатная легкая панель, которая несмотря на минимализм обладает почти всем необходимым для хостинга функционалом. Распространяется по лицензии GPLv3.
На текущий момент поддерживаются дистрибутивы: RHEL 5, RHEL 6, CentOS 5, CentOS 6, Debian 7, Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04, Ubuntu 13.10, Ubuntu 14.04.
Начнем с установки, заходим на сервер по ssh и выполняем:

# curl -O http://vestacp.com/pub/vst-install.sh
# bash vst-install.sh

Установочный скрипт спросит хотим ли мы установить панель и все ПО к ней, попросит указать адрес электронной почты администратора и hostname сервера.

После всех вопросов система сообщит что установка займет около 15 минут. Об окончании установки мы можем узнать по сообщению в консоли, а также по письму на электронную почту указанную нами в установочном скрипте.

Открываем ссылку указанную в сообщении и логинимся.

Видим интерфейс панели, сменим язык интерфейса. Для этого кликнем по «admin» в правом верхнем углу. Откроется профиль пользователя, выбираем «Language» ru и жмем Save. И видим русский интерфейс панели.

После установки панели мы получаем готовое к работе и настроенное ПО: веб-сервер(nginx сразу устанавливается фронтэндом к апачу), почтовый сервер, сервер баз данных, ftp-сервер и сервер DNS. Т.е сразу после установки панели мы можем создавать пользователей, загружать на сервер свои сайты и разворачивать их. Интерфейс панели интуитивно понятен и не вызывает затруднений в работе.

Есть возможность добавлять дополнительные ip на сервер, редактировать cron и правила iptables. Также присутствуют шаблоны пользователей.

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

На мой взгляд, vestacp идеальный вариант для веб-мастера за счет своей бесплатности, открытости и богатого функционала. Для полноценного хостинга не хватает только жесткого разграничения ресурсов сервера(процессорного времени, памяти и т. д.).

Это обзор основных возможностей данной панели, подробнее ознакомится можно на официальном сайте. Там же есть форум с русскоязычной веткой, где можно обсудить панель и получить помощь.