Панелью управления
Как отдельный продукт панели управления
В Интернете можно найти публикации, в которых сравниваются имеющиеся панели (вот, например, неплохой переводной материал; см. также здесь). Мы решили составить собственный обзор, в котором акценты расставлены несколько по-иному, чем в опубликованных ранее. Одним из основных критериев, положенных в основу нашего обзора, является поддержка панелями веб-серверов и их комбинаций. Кроме того, в нашей статье мы рассматриваем продукты, в публикации по ссылкам выше не вошедшие.
ISP Manager
Разработчик: компания ISP System
Первая версия: 1997 год
Последняя версия: 5.17.4 (июль 2014 года)
Поддерживаемые ОС: Linux, Free BSD, Windows
Лицензия: проприетарная
Официальный сайт: http://ispsystem.com
Для установки ISP Manager достаточно из консоли скачать с официального сайта специальный скрипт и запустить его, а после запуска указать требуемую версию (4 или 5) и редакцию (Lite или Pro). В версии 4 установка осуществляется через консоль, а в версии 5 — по-другому: при выборе минимального варианта на консоль выводится ссылка которую нужно открыть в браузере и продолжить установку, выбрав необходимые компоненты. Отметим, что в отличии от четвертой пятая версия имеет модульную структуру: обязательным является только компонент Core. На его основе уже можно выбирать другие используемые компоненты — например, ISP Manager Pro или Lite (есть и другие компоненты, которые в этой статье рассматриваться не будут). Впрочем, при выборе в консоли рекомендуемого варианта установки все необходимые компоненты будут установлены автоматически.
По умолчанию используется веб-сервер Apache. Nginx устанавливается дополнительно (для этого нужно просто перейти в раздел «Настройка сервера» -> «Возможности»):
После установки он автоматически становится фронтендом, а Apache — бэкендом. Делается это для того, чтобы разделить разные функции между Nginx и Apache: Nginx очень хорошо справляется с поддержкой множества сессий и отдачей статичного контента (картинки, музыка, видео и т.д.), Apache обладает широкими возможностями поддержки динамических данных.
После этого Apache начнет слушать на 81 порту (в пятой версии — на 8080), что дает возможность обращаться к нему напрямую, не задействуя при этом Nginx. Для этого нужно просто указать в адресной строке браузера нужный порт, например example.com:81/.
Из соображений безопасности после установки Nginx желательно с помощью iptables заблокировать доступ к серверу по 81 порту, оставив в качестве разрешенных только локальный (127.0.0.1) и внешний IP-адрес сервера. Это можно сделать в самой панели через графический интерфейс в разделе брандмауэра:
Некоторые пользователи предпочитают в этом случае изменить адрес для apache на локальный (127.0.0.1), оставив 80 порт. Не рекомендуется изменять настройки системы, которые могут быть возвращены к стандартным в случае каких-либо обновлений панели управления.
В отличии от версии 4 в версии 5 используется независимый веб-сервер, обеспечивающий работу панели управления и никак не связанный ни с Apache, ни c Nginx. Именно поэтому от использования Apache можно отказаться. Необходимо лишь настроить сайт на работу в связке Nginx + php-fpm. Нужно, однако, учитывать, что php-fpm полностью заменить apache не может. Например, при переходе на php-fpm функции преобразования URL в человекопонятный (реализуемый через mod_rewrite в Apache) вид должны обрабатываться уже веб-сервером Nginx.
К преимуществам пятой версии можно отнести возможность прямого редактирования конфигурационных файлов Apache и Nginx для выбранного домена, благодаря чему для каждого домена можно устанавливать индивидуальные настройки, которые не будут распространяться на остальные.
Также к несомненным достоинствам следует отнести поддержку веб-скриптов в формате APS, с помощью которых для выбранного домена можно установить в полуавтоматическом режиме готовую CMS. От пользователя только потребуется выбрать из списка нужное приложение и указать для него необходимые параметры (создаваемую БД, пользователя, пароль и т.д.).
В числе других преимуществ ISP Manager нужно также назвать наличие широкого набора функций для управления сервером, простоту переноса аккаунтов между хостингами, удобный многоязычный интерфейс, подробную и понятную документацию.
К недостаткам можно отнести ограниченные функции управления брандмауэром и его неактивность по умолчанию. Хотя модуль управления сетевым экраном активируется ещё на этапе установки панели, по умолчанию правила неактивны. Чтобы их активировать, необходимо внести хотя бы одно изменение в список существующих правил из панели управления (например так, как это указано выше).
Plesk Panel
Разработчик: компания SWSoft, сегодня распространяется компанией Parallels
Первая версия: 2003 год
Последняя версия: 12.0.18 u4 (июль 2014 года)
Поддерживаемые ОС: Сentos, OpenSUSE, CloudLinux, RHEL, Debian, Ubuntu, Windows
Лицензия: проприетарная
Официальный сайт: http://sp.parallels.com/ru/products/plesk/
Чтобы установить Plesk Panel, достаточно скачать с официального сайта установочный скрипт и запустить его из консоли.
«Из коробки» поддерживается связка Nginx + Apache, никакой дополнительной настройки не требуется. Можно сразу создавать домен и загружать содержимое сайта. Если после установки панели установить еще и дополнительный модуль файервола, то сразу же будут задействованы правила, ограничивающие доступ к веб-серверу Apache.
Работа в режиме Nginx + php-fpm возможна, но для этого нужно установить компонент поддержки php-fpm cо страницы установки и обновления Parallels:
и указать для выбранного домена, что файлы php должны обрабатываться с помощью Nginx:
Как и ISP Manager, Plesk Panel позволяет устанавливать необходимые веб-приложения (APS) из самой панели управления, сведя, тем самым, действия пользователя по подготовке сайта к минимуму.
Из достоинств Plesk стоит выделить удобный интерфейс, богатый набор функций, наличие многочисленных расширений (addons), устанавливаемых непосредственно из панели управления.
Недостаток можно выделить только один: перегруженность модулями, которые большинству конечных пользователей вряд ли понадобятся.
Ajenti
Разработчик: Евгений Паньков
Первая версия: 2010 год
Последняя версия:1.2.20 (апрель 2014 года)
Поддерживаемые ОС: Debian 6.0 и выше, Ubuntu 10.04 и выше, CentOS 6.0, RHEL, FreeBSD, ArchLinux, Gentoo
Лицензия: GNU LGPL
Официальный сайт: http://ajenti.org/
Ajenti представляет собой среду для выполнения административных задач на сервере через веб-интерфейс. Обслуживание сайтов и управление ими осуществляется с помощью надстройки Ajenti-V, с помощью которой можно также управлять веб-сервером Nginx.
Чтобы установить Ajenti, достаточно скачать с официального сайта скрипт и запустить его на выполнение. Нужный репозиторий будет подключен автоматически; из него будут установлены все необходимые пакеты. Пакеты Ajenti-V нужно устанавливать отдельно:
# apt-get install ajenti-v ajenti-v-nginx ajenti-v-mysql ajenti-v-php-fpm # service ajenti restart
По умолчанию Ajenti-v рассчитан на работу с веб-сервером Nginx в связке с php-fpm, wsgi, puma, unicorn, node.js. Apache поддерживается, но эта поддержка минимальная: пользователь получает лишь доступ к конфигурационному файлу, отвечающему за работу выбранного домена:
Nginx в этом случае должен быть настроен на работу в качестве reverse proxy:
У пользователей, не имеющих опыта прямого редактирования конфигурационных файлов, на этом этапе могут возникнуть проблемы. Веб-интерфейс, с помощью которого редактируются параметры Nginx, может показаться непривычным, и настроить все корректно с первого раза скорее всего не получится: потребуется несколько раз отредактировать настройки из веб-интерфейса, а затем просмотреть файлы, сгенерированные Ajenti-v, и сравнить полученное с задуманным.
Интерфейс для настройки встраиваемых интерпретаторов (например, php-fpm или uwsgi) устроен лучше, но и здесь велика вероятность столкнуться с разного рода неожиданностями. Но после первого знакомства опытные пользователи смогут оценить этот минималистичный подход и его удобство.
Из плюсов Ajenti назовем большой набор функций для управления веб-серверов и сайтами, расширяемый при помощи дополнительных модулей и плагинов. Панель отличается удобным веб-интерфейсом, реализованным на AJAX. Ajenti представляет собой в целом удобную среду, не перегруженную установками и настройками, благодаря чему даже начинающим пользователь может в ней без труда разобраться.
Единственным значительным минусом являются уже упомянутые выше сложности с редактированием конфигурационных файлов для неопытных пользователей.
Проект интенсивно развивается и улучшается с каждой новой версией. Мы считаем Ajenti вполне перспективным продуктом и рекомендуем к ознакомлению.
Vesta CP
Разработчик: компания Vesta
Первая версия: 2012 год
Последняя версия: 0.9.9 −1 (август 2014 года)
Поддерживаемые ОС: RHEL 5.x, 6.x; CentOS 5.x, 6.x; Debian 7;
Ubuntu LTS 12.04, Ubuntu 12.10, Ubuntu 13.04, Ubuntu 13.10
Лицензия: GNU GPL; дополнительная поддержка оказывается платно
Официальный сайт: http://vestacp.com/
Как и в случае с предыдущими панелями, для установки достаточно скачать скрипт и запустить его на выполнение. Далее все происходит в автоматическом режиме. При необходимости подключаются дополнительные репозитории. Если какие-либо нужные компоненты уже были установлены ранее, то в директории /root/vst_install_backup будут сохранены резервные копии всех конфигурационных файлов, которые были затронуты при их установке.
От всех рассмотренных выше панелей Vesta CP отличается во-первых, тем, что в ней все операции, выполняемые через браузер, можно также выполнять и через консоль, а во-вторых — тем, что в ней используется модуль Apache mod_ruid2. Все консольные утилиты располагаются в директории /usr/local/vesta/bin/; иx имена начинаются с префикса «v-», например v-add-user, v-change-database-password и т.д.
Уже упомянутый выше модуль Apache mod_ruid2 заслуживает отдельного рассмотрения. О нем можно написать целую статью; здесь мы ограничимся лишь кратким описанием, но этого будет вполне достаточно, чтобы понять специфику Vesta CP. Когда на одном сервере сосуществуют множество пользователей, а все их сайты обслуживаются только одним веб-сервером, возникает проблема разграничения прав при исполнении php-скриптов. Обычно эта проблема решается путем исполнения скриптов через suexec и suphp. Преимуществом mod_ruid2 является то, что он работает напрямую с mod_php, что обеспечивает более высокую скорость выполнения.
Также для mod_ruid2 можно указать дополнительную группу (например, ту, от имени которой запущен процесс Apache) — это иногда может потребоваться для установки некоторых CMS.
У этого модуля есть существенный недостаток: при наличии уязвимостей через него возможно теоретически получить root-доступ. Сам разработчик mod_ruid2 для обеспечения безопасности предлагает использовать патчи ядра grsecurity.
Несмотря на то, что этот модуль находится еще в несколько «сыром» состоянии, он становится все более распространенным и популярным. Об этом может свидетельствовать хотя бы то, что он уже используется в панели CPanel в качестве одного из обработчиков php.
После установки ничего настраивать дополнительно не нужно, требуется лишь указать основные NS-серверы. По умолчанию при создании сайта используется веб-сервер Apache, поддерживается также связка Apache + Nginx:
Поддержки режима Nginx + php-fpm на данный момент ещё нет, реализация обещана в ближайшем релизе.
Несмотря на минималистичность интерфейса, VestaCP предоставляет все необходимые средства для создания и управления сайтом: управление пользователями, создание доменов и баз данных. Некоторые операции (такие, например, как настройка параметров php) при этом все равно придется выполнять с помощью консоли. Из достоинств VestaCP выделим быструю с точки зрения пользователя работу, простоту установки и обновления, хороший форум технической поддержки.
Из недостатков можно выделить только один: отсутствие хотя бы краткого описания шаблонов из списка, задаваемых для Apache, Nginx и DNS. Впрочем, этот минус не такой уж существенный: всю необходимую информацию можно найти в официальной документации, а предлагаемые по умолчанию шаблоны подходят для большинства случаев.
Vesta CP интенсивно развивается; будем надеяться, что в ближайшее время она станет более функциональной и удобной.
CPanel
Разработчик: компания cPanel Inc.
Первая версия: 1996 год
Последняя версия: 11.44.1.17 (август 2014 года)
Поддерживаемые ОС: Сentos 5.x, 6.x, RHEL 5.x, 6.x, CloudLinux 5.x, 6.x, FreeBSD (с 30.09.2012 поддержка прекращена), есть версия для Windows (с февраля 2014 не поддерживается)
Лицензия: проприетарная
Официальный сайт: http://cpanel.net/
От упомянутых выше панелей CPanel отличается сложной процедурой установки. Прежде чем скачать с официального сайта и запустить установочный скрипт, потребуется осуществить предварительную подготовку: отключить SELinux, установить Perl, задать полное имя домена (fqdn) в файлах /etc/sysconfig/network и /etc/hosts.
Во время установки все необходимые для работы веб-сервера компоненты собираются из исходных кодов. Все это по понятным причинам делает процесс установки очень долгим.
В состав СPanel входят два компонента: собственно CPanel и WHM. WHM представляет собой веб-интерфейс для «суперадминистратора», с помощью которого можно получить доступ ко всем настройкам среды — например, задать важные параметры, влияющие на производительность Apache (max_clients, min/max spare servers и другие), доступ ко всем возможным опциям php и др. Несомненное удобство заключается в том, что настройки можно изменять через веб-интерфейс, а не редактировать вручную конфигурационные файлы. Однако для того, чтобы новые настройки вступили в силу, в некоторых случаях может потребоваться пересборка отдельных компонентов.
Для настройки веб-сервера используется инструмент WHM EasyApache. C его помощью можно выбрать конкретный профиль — набор возможностей, который будет поддерживать сервер. Если выбрать, например, профиль Basic, то все запросы будут обрабатываться при помощи стандартного модуля mpm_prefork. Если же выбрать профиль MPM ITK, то будет использован модуль mpm_itk, повышающий безопасность работы веб-сервера за счет разделения процессов по пользователям:
CPanel представляет собой панель управления в традиционном понимании. Именно с ее помощью осуществляется управление сайтами, настройка почты, доменных имен и т.п. Интерфейс CPanel прост и понятен даже новичку:
«Из коробки» CPanel поддерживает только веб-сервер Аpache. Поддержка других веб-серверов реализуется с помощью сторонних плагинов и расширений, как проприетарных, так и свободных.
Чтобы использовать Nginx в качестве фронтенда к Apache, можно, например, прибегнуть к помощи плагина Nginx Admin. Для установки этого плагина нужно скачать tar-архив, распаковать его и запустить специализированный скрипт. Заметим, что в последних версиях CPanel с установкой Nginx Admin могут возникнуть проблемы. Можно также воспользоваться расширением ApacheBooster или проприетарным плагином cPnginx. Поддержка связки Nginx + php-fpm реализуется при помощи плагина cpXstack.
Благодаря тому, что CPanel ориентирована на работу с веб-сервером Apache, удается обеспечить широкие возможности для гибкой настройки и конфигурирования. Гибкость обеспечивается за счет создания самостоятельного окружения с пересборкой в случае необходимости. Работа с WHM требует от пользователя определенных знаний и опыта, но в большинстве случаев настроек по умолчанию вполне достаточно.
В последних версиях (начиная с 11.44) добавлена возможность централизованного управления с главного сервера другими серверами с предустановленной WHM, названная кластером конфигураций (Cluster Configuration, сходная с подобным режимом в ISPConfig — см. ниже). Возможности работы в кластере расширяются; постепенно добавляются новые функции.
В числе несомненных преимуществ CPanel следует назвать поддержку широкого набора ПО, локализацию на более 20 языков, многоуровневое управления пользователями и расширенную функциональность для реселлинга.
Обратной стороной гибкости настройки и управления оказывается более низкая (по сравнению с упомянутыми выше панелями) производительность.
Учитывая стоимость лицензирования и мультисерверную поддержку, эта панель может быть рекомендована к использованию прежде всего реселлерам и тем, кто поддерживает большое количество различных сайтов.
ISPConfig
Разработчик: projektfarm GmbH
Первая версия: 2007 год
Последняя версия: 3.0.5.4 (август 2014 года)
Поддерживаемые ОС: Debian, Ubuntu, CenOS, OpenSUSE, Fedora
Лицензия: BSD
Официальный сайт: http://www.ispconfig.org/
ISPConfig устанавливается не так, как все описанные выше панели управления: сначала устанавливается все необходимое ПО (веб-сервер, СУБД, FTP, почтовая система), и только затем с помощью специального скрипта устанавливается сама панель управления. С подробной инструкцией по ручной установке и настройке под различные конфигурации и дистрибутивы можно ознакомиться на сайте howtoforge.com (см. также более упорядоченный вариант).
Такой подход дает возможность поддерживать большее количество дистрибутивов, а также реализовать функции, недоступные для большинства ПУ. Например, имеется возможность работы в своеобразном кластере из нескольких серверов, на которых установлен ISPConfig; при этом один из них является главным и управляет всеми остальными. В таком режиме работы при создании пользователя и домена можно сразу указать, на каком именно сервере будут храниться его данные. Можно также разделить функции между серверами: один будет отвечать за работу БД, другой — за основной веб-сервер, выполняющий динамическую обработку запросов, а третий — за фронтенд, принимающий запросы пользователей.
Так как подготовка среды осуществляется еще до установки самой панели, ISPConfig можно установить на систему, где уже работает сервер Nginx либо Apache. ISPConfig может работать с любым из этих серверов, которые к тому же можно настроить удобным для пользователя способом (например, Nginx + php-fpm). Поддержку связки Nginx + Apache можно настроить с помощью специального модуля.
Подготовка веб-сервера и его окружения — задача рутинная и довольно непростая, но ее можно ускорить и автоматизировать с помощью специальных скриптов. На сервер с OC Debian или Ubuntu ISPConfig можно установить c помощью cкрипта ISPConfig3-Debian-Installer. Скрипт работает как с сервером Apache, так и с Nginx. Существует и скрипт для работы со связкой Nginx + Apache.
К числу несомненных достоинств панели относятся поддержка кластерного режима и стандарта APS — функции, которые встречаются в основном у проприетарных продуктов.
Очевидным недостатком CPanel является сложность подготовки сервера к установке и ручная настройка всех компонентов. И хотя на на сайте howtoforge.com представлены подробные пошаговые инструкции, всех сложностей установки это не снимает.
Заключение
В этой статье мы кратко рассмотрели несколько популярных и распространенных панелей управления. Резюмируем результаты нашего обзора в виде следующей таблицы (в таблице представлена также дополнительная информация, дающая более полное представление о возможностях рассматриваемых панелей:
Характеристика | ISP Manager | Plesk | WHM/CPanel | VestaCP | Ajenti-V | ISPConfig |
---|---|---|---|---|---|---|
Поддерживаемые ОС | CentOS > 6 Debian 7 FreeBSD 9 CloudLinux Windows |
CentOS 5-7 Debian 6-7 Ubuntu LTS 10.04-12.04 RHEL 5-7 OpenSUSE 12.3-13.1 CloudLinux 5-6 |
CentOS 5-6 RHEL 5-6 CloudLinux 5-6 |
RHEL 5-6 CentOS 5-6 Debian 7 Ubuntu 12.04-14.04 |
Debian Ubuntu RHEL CentOS |
Debian 5-7 CentOS 5-6 Fedora 12-15 OpenSUSE 11.1-13.1 Ubuntu 8.10-14.04 |
Поддерживаемые веб-серверы | Apache Apache + Nginx Nginx + php-fpm (для 5 версии) |
По умолчанию Apache + Nginx | Официально только Apache; Apache + Nginx и Nginx + php-fpm — через сторонние расширения | Apache Apache + Nginx |
Nginx + php-fpm Nginx + uwsgi Nginx + Puma Nginx + Unicorn Nginx + Gunicorn Nginx + Node.js Nginx + Apache |
Nginx либо Apache, Nginx + Apache — через стороннее расширение |
Поддерживаемые БД | MySQL PostgreSQL |
MySQL PostgreSQL |
MySQL | MySQL PostgreSQL |
MySQL PostgreSQL |
MySQL |
Поддерживаемые DNS-серверы | Bind | Bind | Bind MyDNS NSD |
Bind | Bind NSD |
Bind MyDNS |
Управление доменами и поддоменами | Полное управление зонами через Bind | Полное управление зонами через Bind | Выбор сервера: Bind, myDNS, NSD | Управление записями через Bind | Встроенных средств нет | Полное управление зонами через Bind |
Настройка и администрирование БД | Базовое* phpMyAdmin |
Базовое* phpMyAdmin |
Базовое* phpMyAdmin |
Базовое* phpMyAdmin |
Базовое* модуль ajenti-mysql |
Базовое* phpMyAdmin |
Статистика | Awstats | Awstats Webalizer |
Analog Awstats |
Awstats Webalizer |
Статистика как таковая отсутствует, ее нужно добавлять через соответствующую запись в конфигурационном файле | Awstats Webalizer |
Поддержка APS | + | + | + | - | - | + |
Настройки безопасности | Встроенное управление файерволлом, антиспам (белые/чёрные списки) | Fail2ban, антивирус Касперского, spamassasin (белые и чёрные списки) | mod_security (возможность подробной настройки), clamav, cPHulk, защита от брутфорса, jail'ы для vhost apache с помощью mod_ruid2 и cPanel jailshell | Встроенных средств защиты нет | Встроенный файерволл | Встроенное управление firewall'ом, антиспам (белый/чёрный список), fail2ban, RKHunter |
Стоимость и условия лицензирования | 5 — lite: 190 руб./мес., pro: 570 руб./мес. Приведены официальные цены, у ресселеров цены могут быть ниже | Web Host: 35$/мес либо 385$/год, у ресселеров можно приобрести более простые редакции | 20$/мес. (200$/год) для |
Распространяется под лицензией GNU GPL; дополнительная техническая поддержка оказывается платно | Распространяется под лицензией AGPLv3 | Распространяется по лицензии BSD |
* — под базовым управлением понимаются простые функции по созданию и удалению баз данных и их пользователей.
Если у вас есть замечания и дополнения — добро пожаловать в комментарии. Ждем также комментариев от тех, кто использует панели управления
Читателей, которые по тем или иным причинам не могут оставлять комментарии здесь, приглашаем в наш блог.
Автор: burlunder