Установка И Настройка Vps С Centos 6.X С Помощью Пары Команд С Vestacp

Привет, Хабр! Для своего продукта я сделал установщик на чистый VPS с CentOS 6.x и 512 МБ+ ОЗУ.

Это VPS, который можно приобрести на DigitalOcean.com за 5 долларов в месяц.

Но установщик оказался достаточно универсальным, и его можно форкнуть с Github, чтобы исключить ненужные вам компоненты.

Панель управления выбрана.

ВестаCP , о котором я никогда раньше не слышал, поскольку несколько лет слепо использовал cPanel/WHM, последний раз — с CloudLinux. Но это платная панель, и CloudLinux тоже платная, и последнее, что нужно просить пользователей платить за что-либо кроме продукта.

Встретившись ВестаCP , мне он очень понравился, хотя его еще надо дорабатывать.

Например, нет документации по консольным командам v-*, и вам приходится наугад определять, какие данные необходимо отправить в качестве входных данных.

Иногда это неочевидно из описания использования команды, вызываемой без параметров.

Итак, представим, что у нас чистый VPS, от ЦифровойОкеан , ПервыйVDS или Линод .

По поводу FirstVDS хочу сразу оговориться, что лучше выбирать их пакет с виртуализацией.

КВМ , потому что технология ОпенВЗ (который является самым дешевым из FirstVDS) не позволяет включать файлы подкачки, и насколько я читал, подкачка задается на уровне менеджера виртуальных машин OpenVZ, но в документации FirstVDS четко указано, что у них их нет. swap, и что если приложению на короткое время потребуется больше памяти, чем выделено физически, оно будет прибито и сервер может зависнуть.

Для установщика я создал репозиторий на GitHub: https://github.com/jetapps-eu/publigator-vps-installer Чтобы начать установку, войдите на сервер по SSH и выполните команду:

  
  
  
  
  
   

curl -O https://raw.githubusercontent.com/jetapps-eu/publigator-vps-installer/master/publigator-install-step1.sh && bash publigator-install-step1.sh

Эта команда загрузит конфигуратор, запросит у вас имя хоста, электронную почту, на которую будут отправлены данные доступа VestaCP, имя домена, которое будет создано автоматически для пользователя-администратора, а также IP для этого домена.

Кроме того, вам будет предложено ввести имя базы данных, пользователя и пароль, которые также будут созданы в процессе установки для пользователя с правами администратора.

После этого будут установлены репозитории EPEL и RPMForge, обновится система и будут установлены wget, htop, mc, а также группа «Инструменты разработки».

Кроме того, будет создан и временно включен файл подкачки /swapfile размером 512 МБ без его регистрации в /etc/fstab. Дальнейшие действия для файла подкачки можно найти в статье на ЦифровойОкеан .

Далее httpd будет удален, если он существует. На некоторых изображениях, используемых провайдерами VPS, он установлен по умолчанию.

В конце шага 1 панель управления VestaCP будет установлена, и вы увидите ее учетные данные для доступа в консоли.

Вы также получите их по электронной почте.

По умолчанию VestaCP устанавливает в качестве прокси PHP 5.4.x, Apache 2.2.x, MySQL 5.5.x, Nginx. Если у вас сервер с 1ГБ+ ОЗУ, то также будут установлены SpamAssassin и ClamAV, установлен FGCID для Apache и добавлен соответствующий шаблон для Apache. В моем репозитории есть специальный шаг publigator-fcgid-install.sh, который не используется по умолчанию, но вы можете использовать его, если разветвите репозиторий.

Он позволяет установить fgcid и шаблон с настройками таймаута и ресурсов, а также устанавливает оптимизированный fcgid-starter для серверов с небольшим объемом памяти, в частности параметр PHP_FCGI_CHILDREN экспортируется без значения, как рекомендовано на странице.

mod_fcgid .

Далее переходим к шагу 2:

curl -O https://raw.githubusercontent.com/jetapps-eu/publigator-vps-installer/master/publigator-install-step2.sh && bash publigator-install-step2.sh

По умолчанию на этом шаге будет выполнено следующее:

  • Устанавливает пакет mysqlnd для PHP вместо обычного php-mysql. Возможно, вам это и не понадобится, но в моем случае Yii2 на данный момент некорректно работает со штатным драйвером libmysql, в плане получения значений из полей типа BIT. Yii2 ожидает уже преобразованное значение 0 или 1, что соответствует ord(48) и ord(49), а libmysql возвращает значение бита RAW, которое соответствует ord(0) и ord(1) соответственно.

    Возникает непонимание.

  • Устанавливает последнюю версию загрузчика IonCube.
  • Обновляет библиотеку ICU до версии 54.1.
  • Устанавливает обновленный php-intl версии 3.0 из PECL для поддержки нового ICU (чего можно добиться путем перекомпиляции PHP, но в этом случае PHP устанавливается как пакет и проще обновить intl из PECL).

  • Устанавливает расширения PHP из PECL: oauth, igbinary, pecl_http, imagick, geoip. Загружает и устанавливает зависимости.

  • Компилирует и устанавливает PHP-расширение opendkim, которое может использовать Swiftmailer.
  • Изменяет настройки /etc/php.ini:
    • realpath_cache_size = 1M
    • realpath_cache_ttl = 120
    • max_execution_time = 300
    • post_max_size = 32M
    • default_charset = UTF-8
    • display_errors = Вкл.

    • max_input_vars = 10000
    • upload_max_filesize = 32M
  • Изменяет настройки /etc/my.cnf:
    • wait_timeout=1800
    • интерактивный_таймаут = 1800
  • Создает дополнительные файлы конфигурации NGINX для домена, в которых указаны увеличенные таймауты.

  • Загружает, компилирует и устанавливает SuPHP 0.7.2 и зависимости компиляции.

    Для этой цели добавляет шаблоны для Apache и Nginx и добавляет пакет хостинга suphp.

  • Увеличивает время ожидания в /etc/httpd/conf/httpd.conf.
После этого идет этап подготовки к установке моего скрипта «Публикатор», но вы опять же можете форкнуть репозиторий и переделать его под себя.

Также на этом этапе:

  • Пакет suphp включен для пользователя-администратора, а также включено использование nginx для домена с помощью шаблона suphp.
  • Удаление default.domain для администратора пользователя
  • Пакеты хостинга Palegreen, Gainsboro и slategrey, которые VestaCP устанавливает по умолчанию, удаляются.



Нижняя граница

После выполнения команд у вас есть VPS с CentOS 6.x, VestaCP в качестве панели управления, Apache 2.2.x, PHP 5.4.x, Nginx в качестве прокси, SuPHP в качестве среды выполнения PHP, обновленных ICU и php-intl и установленных пакетов PECL oauth. , igbinary, pecl_http, imagick, geoip и PHP-расширение opendkim, а также слегка модифицированный php.ini. Если вы разветвляете репозиторий, обратите внимание на переменную WEBSOURCE в файлах publigator-config-tpl.sh и publigator-install-step1.sh — она должна ссылаться на ваш репозиторий.

Кроме того, шаг установки publigator-suphp-0.7.2-install.sh можно заменить шагом publigator-fcgid-install.sh. Я планирую развивать репозиторий и добавлять поддержку Debian и Ubuntu. Вы можете задавать вопросы в комментариях или в разделе Issues на Github. Спасибо за внимание!

УПД 20.12.2014

Установку SuPHP я убрал из стандартного шага, т.е.

остался mod_ruid2, который устанавливает VestaCP. Вместо этого я сделал несколько вариантов шага 2:

curl -O https://raw.githubusercontent.com/jetapps-eu/publigator-vps-installer/master/publigator-install-step2-suphp.sh && bash publigator-install-step2-suphp.sh

Это, судя по названию, опция с SuPHP. SuPHP 0.7.2 скомпилирован и установлен.

Добавлен пакет хостинга suphp и шаблоны добавлены suphp для Apache и Nginx. Добавлена конфигурация для SuPHP: /etc/suphp.conf и добавлена конфигурация для Apache: /etc/httpd/conf.d/php.suphp.conf Для администратора пакет хостинга меняется на suphp, для создаваемого домена добавляется поддержка Nginx, а для созданного домена устанавливаются шаблоны suphp для Apache и Nginx.

curl -O https://raw.githubusercontent.com/jetapps-eu/publigator-vps-installer/master/publigator-install-step2-fcgid.sh && bash publigator-install-step2-fcgid.sh

Этот вариант предполагает установку Fcgid (сама установка производится только на микросерверах с < 1GB RAM, since Vesta installs in other cases independently).

A hosting package is being created phpfcgid и шаблоны добавлены pbl_phpfcgid для Apache и Nginx. Для администратора пакет хостинга меняется на phpfcgid, для создаваемого домена добавляется поддержка Nginx, а для созданного домена устанавливаются шаблоны pbl_phpfcgid для Apache и Nginx. Шаблоны Apache имеют следующие параметры mod_fcgid:

FcgidBusyTimeout 900 FcgidIdleTimeout 900 FcgidIOTimeout 900 FcgidMaxRequestLen 104857600 FcgidMaxRequestInMem 128000000 FcgidMaxRequestsPerProcess 1000

И fcgi-starter тоже копируется со следующими параметрами:

#!/bin/sh PHPRC=/usr/local/lib export PHPRC export PHP_FCGI_MAX_REQUESTS=1000 export PHP_FCGI_CHILDREN exec /usr/bin/php-cgi

Переменная PHP_FCGI_CHILDREN экспортируется без значения для экономии памяти.

Теги: #Администрирование сервера #Настройка Linux #vps #vestacp #bash-скрипты Linux #centos 6

Вместе с данным постом часто просматривают: