Привет, Хабр! Для своего продукта я сделал установщик на чистый 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 и выполните команду:
Эта команда загрузит конфигуратор, запросит у вас имя хоста, электронную почту, на которую будут отправлены данные доступа VestaCP, имя домена, которое будет создано автоматически для пользователя-администратора, а также IP для этого домена.curl -O https://raw.githubusercontent.com/jetapps-eu/publigator-vps-installer/master/publigator-install-step1.sh && bash publigator-install-step1.sh
Кроме того, вам будет предложено ввести имя базы данных, пользователя и пароль, которые также будут созданы в процессе установки для пользователя с правами администратора.
После этого будут установлены репозитории 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 экспортируется без значения, как рекомендовано на странице.
Далее переходим к шагу 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
-
Новогодние Подарки, Часть Первая: Обвал
19 Oct, 24 -
Коллеги: Ни Друг, Ни Враг, А Как?
19 Oct, 24 -
Js Sdk Узла Вконтакте
19 Oct, 24