Панель управления хостингом ISPConfig v3

7 Дек
2008

Статья напечатана в журнале Системный Администратор
Управление хостингом никогда не являлось простой задачей. Здесь на помощь приходят специальные инструменты, называемые панелями управления хостингом. Одним из таких решений является ISPConfig.

В журнале уже шла речь об одной из панелей управления хостингом – SysCP. Недавнее знакомство с этим продуктом показало, что за прошедший год мало что изменилось, номер версии далеко вперед не ушел (сегодня актуальна 1.2.19). Но анализ ссылок по запросу “hosting” на сайте freshmeat.net показал, что расклад среди свободных решений стал несколько иной. Из всего списка постоянно обновляются всего десяток проектов. На момент написания этих строк проблем с локализацией не было в SysCP, DTC, VHCS, ispCP. Проект VHCS (Virtual Hosting Control Panel) уже практически два года не обновлялся и содержит несколько критических ошибок. Учитывая, что некоторые разработчики на его основе создали ispCP, использовать VHCS не стоит.
Есть средства для локализации и в ISPConfig, о котором речь пойдет дальше, но в последней стабильной версии 2.2.25 этому вопросу приходится уделять несколько больше времени, чем с остальными продуктами. Тем более, что здесь небольшая путаница. В описании на сайте сказано, что русский поддерживается изначально, но в процессе установки и работы он не предлагается вообще, хотя языковые файлы присутствуют (не для всех меню).

В интерфейсе ISPConfig русский язык не предлагается

В интерфейсе ISPConfig русский язык не предлагается

Отдельно файлы локализации можно скачать по адресу. В версия 3, находящейся в стадии активной разработки, русский интерфейс пока не недоступен. Но система имеет удобный интерфейс для его локализации, и при знании базового английского, потратив несколько часов, легко это сделать самостоятельно. Готовый на 80% файл отправлен авторам ISPConfig и по заверениям уже включен в SVN.
В остальном функции проектов схожи и, выбрав любой, можно:
- управлять Web-сервером (обычно Apache 1.x/2.x), создавать виртуальные серверы;
- редактировать DNS-записи (A, CNAME, MX, иногда SPF) на поддерживаемом DNS сервере, создавать домены и субдомены;
- управлять базами и пользователями MySQL (другие, почему то мне не встречались, по крайней мере, в списке основных);
- управлять виртуальными почтовыми серверами и ящиками пользователей;
- управлять почтовыми фильтрами, автоответчиками, антиспам- и антивирус-проверками, работать с почтой через веб-интерфейс;
- устанавливать дисковые квоты и лимиты трафика;
- управлять виртуальными FTP-серверами и пользователями;
- управлять SSL-сертификатами, использованием PHP и CGI;
- несколько уровней доступа в зависимости от задач: администратор сервера, реселлер, пользователь (ресурсов сервера). Некоторые решения предоставляют и возможность доступа к почтовым ящикам и обычным пользователям.
- собирать статистику по всем вопросам;
- отслеживать обращения в техподдержку (ticket system).

Все эти функции есть и ISPConfig. Отличия лишь в серверах, которые поддерживает та или иная панель. Если места для веб и СУБД традиционно заняты Apache и MySQL (альтернативы для них предлагаются реже), то для организации SMTP/POP3/IMAP может быть задействовано любое из доступных сегодня свободных решений. Поэтому при выборе хостинг-панели следует внимательно присмотреться к требованиям. Но, например Domain Technologie Control (DTC) [5], который на сегодня поддерживает самое большое количество серверов, из-за своей функциональности не так прост в установке. Не спасает и то, что он есть в репозитариях многих дистрибутивов (например, в отличие от остальных решений, он единственный присутствует в Ubuntu).
Официально ISPConfig поддерживает все популярные сегодня дистрибутивы: Mandrake 8.1 – 10.2, Mandriva от 2006, Red Hat Linux 7.3 – 9.0, Fedora (Core) от 1, CentOS 4.1 до 5.2, SuSE Linux 7.2 – 11.0, OpenSuSE от 5.2, Debian от 3.0 и Ubuntu от 5.04. Хотя, вероятно, будет работать и в других решениях, для которых доступны:
Apache 1.3.х или / 2.х;
Sendmail или Postfix;
ProFTPd и Pure-FTPd как (standalone) или vsftpd как (inetd/xinetd/standalone);
PHP 4.0.5 и выше;
MySQL 4/5;
POP3/IMAP, поддерживающий форматы – традиционный Unix-Mailbox (gnu-pop3d, qpopper, ipop3d, popa3d или vm-pop3d) или Maildir (Courier-IMAP, Dovecot);
BIND 8/9 для ISPConfig 2 или MyDNS для ISPConfig 3;
phpMyAdmin, Webalizer, Quota, iptables или ipchains.

И некоторые другие приложения. На странице закачки можно найти ссылки на некоторые
дополнительные инструменты, расширяющие стандартные возможности ISPConfig. Распространяется ISPConfig по BSD-лицензии.

Установка ISPConfig

Как уже говорилось, на данный момент развивается две версии: стабильная 2.2.25 и тестовая 3.0.0.6 Beta. Их интерфейс, а также процесс установки и локализации отличаются. Например, в версии 3 для установки компонентов используются программы из репозитария дистрибутива, а в 2 некоторые приложения (Apache 1.3.41, ClamAV 0.93.3, PHP 5.2.6 и некоторые другие) компилируются из исходных текстов. Все программы, которые нужно компилировать, включены в архив, поэтому и размер его почти 45 Мб. Даже при соблюдении всех инструкций, компиляция иногда заканчивается неудачей и установочные скрипты по разным причинам (чаще несовместимость библиотек) отказываются дальше работать. Скрипты рассчитаны именно на такую установку, к ним привязаны и инструкции. Если, к примеру, необходим Apache2, процесс установки несколько усложняется.
Так как в будущем, вероятно, версия 3 будет основной, о ней и пойдет речь дальше. Хотя, сравнивая возможности интерфейса, версия 3 на данный момент проигрывает 2. Например, возможности реселлера пока реализованы не полностью, поэтому грань между ним и пользователем практически отсутствует. Но для организации хостинга без реселлеров того, что есть, вполне достаточно. Также будем учитывать, что перед нами все-таки бета, и в дальнейшем все может измениться.
В качестве системы для установки рекомендованы Debian 4.0 или Ubuntu 7.10. Я использовал Ubuntu 8.04 LTS, проблем в работе замечено не было. Инструкции по установке найдете на сайте проекта и внутри архива.
В начале обновляем систему:
$ sudo apt-get update
$ sudo apt-get -u upgrade


Приступаем к установке компонентов будущей системы, если какие то из пакетов уже в системе присутствуют их установку можно пропустить. Устанавливаем Postfix, Courier, Saslauthd, MySQL, phpMyAdmin:


$ sudo apt-get install postfix postfix-mysql mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4

В процессе установки приложений мастер настройки пакетов будет задавать вопросы по конфигурации. При установке Courier на вопрос “Create directories for web-based administration?” отвечаем “No”. При установке Postfix на вопрос “General type of configuration?” выбираем “Internet site”. Далее вводим имя почтового домена и на вопрос “SSL certificate required” выбираем “Ok”.
Пароль для пользователя root в MySQL по умолчанию отсутствует. Его нужно добавить.

$ mysqladmin -u root password password

Теперь очередь Amavisd-new, Spamassassin и Clamav:

$ sudo apt-get install amavisd-new spamassassin clamav clamav-daemon zoo nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl libnet-dns-perl

Дальше Apache2, PHP5 и phpMyAdmin

$ sudo apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli

После установки веб-сервера следует активировать некоторые модули:

$ sudo a2enmod suexec
$ sudo a2enmod rewrite
$ sudo a2enmod ssl
$ sudo a2enmod fastcgi

Далее для работы потребуется модуль “capability”. В версии 8.04 он вкомпилирован в ядро:
$ grep -i capabilities /boot/config-2.6.24-16-generic
CONFIG_SECURITY_CAPABILITIES=y
Иначе его следует загружать в виде модуля:
$ sudo modprobe capability
$ sudo echo ‘capability’ >> /etc/modules

Ставим пакеты Pure-FTPd и quota.
$ sudo apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Отключаем определение имен узлов в журнале Pure-FTPd, при этом записи станут менее информативными, но зато будет требоваться меньше ресурсов.
$ sudo sh -c ‘echo ‘yes’ > /etc/pure-ftpd/conf/DontResolv’

В третьей версии ISPConfig в качестве DNS-сервера пока поддерживается только MyDNS и MyDNS-NG (sourceforge.net/projects/mydns-ng), так как они поддерживают MySQL «из коробки». В будущем планируется добавить к этому списку и BIND. В репозитарии Ubuntu MyDNS нет, поэтому его нужно скомпилировать. Ставим пакеты необходимые для сборки:

$ sudo apt-get install build-essential libmysqlclient15-dev
Скачиваем и устанавливаем MyDNS обычным образом:
$ wget http://mydns.bboy.net/download/mydns-1.1.0.tar.gz
$ tar xvfz mydns-1.1.0.tar.gz
$ cd mydns-1.1.0
$./configure
$ make
$ sudo make install

И, наконец, средства анализа файлов журналов vlogger и Webalizer.
$ sudo apt-get install vlogger webalizer

С установкой зависимостей закончили. Теперь скачиваем архив с ISPConfig, распаковываем и ставим.
$ wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.6-beta.tar.gz
$ tar xvfz ISPConfig-3.0.0.6-beta.tar.gz
$ cd ispconfig3_install/install/
$ sudo php -q install.php

После запуска установочный скрипт будет задавать ряд вопросов.

Работа установочного скрипта

Работа установочного скрипта

Здесь ничего необычного. В квадратных скобках предлагаются ответы по умолчанию, если он не подходит просто вводим свое значение. После установки информацию можно найти в журнале /var/log/ispconfig_install.log.
Вибираем язык.
Select language (en,de) [en]:
Вариант установки.
Installation mode (Standard,Expert) [Standard]:
В варианте Expert скрипт будет задавать, чуть больше вопросов по настроке конкретного сервиса, обычно необходимости прибегать к нему нет.
Вводим полное имя сервера
Full qualified hostname (FQDN) of the server, eg foo.example.com [example.com]:
Парметры для доступа к MySQL.
MySQL server hostname [localhost]:
Если MySQL принимает подключения не на стандартном порту, придется подправить команду подключения внутри установочного скрипта.
MySQL root username [root]:
MySQL root password []:password
MySQL database to create [dbispconfig]:

Далее скрипт создаст базы данных и таблиц, и будет сгенерирован сертификат, в процессе создания которого будут заданы традиционные вопросы (страна, город, организация и так далее) и предложено указать порт для подключения к ISPConfig. По умолчанию – 8080, если этот порт уже занят меняем его введя новое значение.
Затем будут созданы пользователь и группа ispconfig, установлены задания для crontab и запущены все сервисы.

Веб-интерфейс ISPConfig

После установки набираем в браузере http://hostname:8080/, для регистрации используем учетную запись – admin и пароль – admin (пароль после регистрации незабываем сменить). Интерфейс визуально разделен на три поля и в принципе стандартен для такого рода программ.

Интерфейс администратора ISPConfig

Интерфейс администратора ISPConfig

Вверху находится основное меню, отрывающее доступ к определенным настройкам: System, Client, Email, Monitor, Sites, DNS. Плюс по умолчанию отключенный модуль BE Designer (включается в настройках учетной записи). При выборе любого пункта слева будет доступна группа меню, относящееся к нему. Все настройки производятся в центре страницы. Чтобы разобраться с возможностями интерфейса, достаточно потратить полчаса времени, все находится на своих местах и там, где ожидаешь. Сюрпризов не возникает. На создание новой DNS записи, домена, субдомена, виртуального почтового или веб-сервера, почтового ящика и прочего уходит 1-2 минуты. Просто заполняем предложенные поля и следуем указаниям системы, в случае проблем появится предупреждающая надпись.
При создании нового пользователя доступные ему пункты меню реализуются при помощи подключения модулей. Последняя функция очень удобна, так как пользователю можно дать именно такой интерфейс, который полностью подходит для выбранной задачи. Не больше, не меньше. Например, можно создать несколько записей с правами администратора, передав им часть функций по управлению. Меню BE Designer позволяет редактировать меню, убирать или добавлять новые пункты. При создании клиентской учетной записи есть возможность установки разнообразных лимитов.
Интерфейс версии 3 переведен на 6 языков, русского в этом списке нет. Но разработчики предоставили удобный инструмент, чтобы сделать это самостоятельно. В меню System находится отдельный пункт Language Editor. Есть как минимум два варианта работы с ним. Для начала создаем новый язык, выбрав New Language затем в поле Select language basis указываем язык, используемый в качестве базового, и вводим название из двух букв, в New language (в нашем случае ru). Теперь, перейдя в меню Languages, выбираем в списке Select language свой язык и получаем возможность редактирования отдельных файлов при помощи веб-интерфейса.

Редактирование языкового файла

Редактирование языкового файла

Но удобнее экспортировать языковый файл, выбрав в меню Export язык. Созданный файл сохраняем на жесткий диск, в дальнейшем его можно редактировать при помощи любого текстового редактора, поддерживающего юникод. По окончании импортируем его через меню Import.

Несмотря на то, что перед нами пока еще версия ISPConfig, находящаяся в разработке, она полностью справляется со своими задачами. Если часто необходимо редактировать DNS записи, создавать виртуальные серверы, стоит присмотреться к этому решению.

11 Комментариев к Панель управления хостингом ISPConfig v3

Аватар

Prosto-Chups

Июнь 4th, 2009 | 1:28

А подскажите, ISPconfig 2 перед этим?

Аватар

grinder

Июнь 4th, 2009 | 1:33

Что перед этим?

Аватар

Prosto-Chups

Июнь 5th, 2009 | 6:44

Подскажите, как удалить ISPconfig 2 перед установкой ISPconfig 3?

А то при установке выдает:

This software can not be installed on a server wich runs ISPConfig 2.x.

Аватар

grinder

Июнь 5th, 2009 | 10:19

Смотря как он устанавливался, на сколько помню вариантов установки у 2 было несколько. Можно просто почистить конфиги, чтобы не было следов ISPConfig. 3 очевидно проверяет порты и если они заняты отказывается устанавливаться.

Аватар

Prosto-Chups

Июнь 5th, 2009 | 14:16

Решилось проще, удалением папки /root/ispconfig
ISPConfig v3 установился, но при попытке зайти в панель управления, выдает непонятный набор символов:

????????X_o?6^?|?+ 4mQ?? l?c?t?&??b? ?%?

И проблема не в кодировке (((

Аватар

grinder

Июнь 5th, 2009 | 15:45

а в логах что-то тоже пишет, в том числе и апача

Аватар

Prosto-Chups

Июнь 5th, 2009 | 19:05

Апачь не запускался… Из-за строк, автоматом дописанных хттп.конф:

NameVirtualHost *:80
NameVirtualHost *:443
Include /etc/httpd/conf/sites-enabled/
Include /etc/httpd/conf/sites-enabled/

Пришлось закомментить две первые строки…
Они у меня раньше прописаны…
Плюс, мандрива ругалась на инклюд…

Получилось так:

#NameVirtualHost *:80
#NameVirtualHost *:443
Include /etc/httpd/conf/sites-enabled/*.conf
Include /etc/httpd/conf/sites-enabled/*.vhost

По идее все идеально…
Ни каких логов с ошибками…

Если в файле:
/usr/local/ispconfig/interface/web/index.php
закоментировать строку:
require_once(‘../lib/app.inc.php’);
Все работает отлично… В смысле любой php код )))
Значит проблема в app.inc.php… Где-то в классе…
Честно, перелапатил, не нашел… (((
А в роде не совсем ламер )))

P.S. А вообще, в коментах не много ни об этом пишут…
Может есть под статью какая-нибудь ветвь форума, чтобы тут не шуметь?

Чуть не забыл…
+ + + + + + + + Статье… )))

Аватар

Prosto-Chups

Июнь 5th, 2009 | 19:12

А вот собственно и сам сервер:
http://srv001.chups.org.ua/
Подкорректировал виртуалхост. Скажу на перед, текст (панели) не изменился, при всех моих корректировках…
Если в этом в тексте можно что либо разобрать, уведомте плз… А то мне даже логин с паролем сменить не удалось )))

Аватар

grinder

Июнь 5th, 2009 | 20:51

Да, такое, впервые вижу, даже не знаю что сказать.
В lib/app.inc.php подключаются плагины, берется инфа с БД, его убирать не нужно. Можно попробовать взять более раннюю версию.

Аватар

Prosto-Chups

Июнь 6th, 2009 | 18:09

Я знаю, что происходит в lib/app.inc.php…
Я его ковырял, пытался разобраться (((

Пробовал ISPconfig 2, не пошел…
Была ошибка из-за конфликта портов… Автоматом устанавливался lighthttpd, сменил порт, в логах ошибки исчезли, но при обращении к адресу, 403 ошибка… (

Аватар

8-)

Октябрь 29th, 2009 | 5:02

Подскажите пожалуйста как после установки по этой инструкции настроить простой шлюз….

Комментировать

Наверх