Панель управления HestiaCP распространяется под лицензией GPL v3 и основана на проекте VestaCP, который давно не поддерживается. Hestia CP позволяет добавлять новые сайты, работать с почтой и базами данных, cron, обновления, файловый менеджер, возможность добавить SSL .
В статье Обзор ТОП 10 Панелей Управления Хостингом VPS я кратко рассказываю об известных мне хостинг панелях.
Системные требования Hestia:
Панель управления сервером (web server control panel) Hestia поддерживает только 64 битные операционные системы Linux: Debian 9, Debian 10, Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, Ubuntu 22.04 LTS. Дистрибутивы CentOS не поддерживаются.
Плюсы Hestia CP:
Минусы Hestia CP:
Мой выбор в сфере VPS-хостинга пал на PQ Hosting, Aeza (AÉZA) и DigitalOcean. Приятно, что эти провайдеры ценят своих клиентов и сохраняют выгодные условия даже при изменении базовых тарифов. Они предлагают широкий выбор конфигураций, что позволяет подобрать оптимальный вариант под любые нужды. Кроме того, у них часто проводятся акции и действуют специальные предложения для постоянных клиентов, что позволяет значительно сэкономить на аренде сервера. У них отличная техническая поддержка, которая всегда готова помочь с любыми вопросами.
Операционные системы, которые использовались для написание этого обзора установки Hestia: Ubuntu 20 LTS, Ubuntu 22 LTS.
Вам нужно будет подключиться к вашему серверу как root, либо напрямую с консоли, либо удаленно с помощью SSH.
Обновите операционную систему, проверьте имя компьютера, локаль, время. Обычно достаточно просто обновить дистрибутив командами:
# apt update; apt upgrade
и добавить несколько системных утилит:
# apt install lsb-release htop net-tools
Также проверьте имя компьютера командой hostname с ключом f. Имя сервера должно соответствовать FQDN, говоря по простому если вы можете используя имя сервера (а не его IP) получить доступ используй протокол SSH - то ОК. Безусловно, если вы планируете использовать полноценный почтовый сервер вам требуется сделать дополнительные проверки - изучите чек лист по настройке VPS/VDS, выделенного сервера Linux с нуля.
Недавно на сайте Hestia появился конфигуратор установщика. Очень удобно! Поэтому я переписал эту часть и привожу скриншот выбора моих настроек. Например, я отключаю установку поддержки iptables (чтобы спокойно использовать UFW), не устанавливаю Fail2Ban так как SSH порт у меня открыт только для моих VPN, а для других блокировок Fail2Ban не эффективен (особенно весело смотреть когда на слабой VPS Fail2Ban выжирает все ресурсы).
cd /root; wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
Для запуска установщика с параметрами по умолчанию используйте команду:
# bash hst-install.sh Welcome to the Hestia Control Panel installer!
Запуска установщика Hestia с параметрами из конфигуратора установщика:
bash hst-install.sh --apache no --iptables no --fail2ban no
Если по каким-то причинам вам нужно изменить параметры по умолчанию, вы можете воспользоваться такой командой
bash hst-install.sh -f -y no -e email@domain.tld -p p4ssw0rd -s hostname.domain.tld
Скрипт ручного обновления с Nginx + Apache2 + PHP-FPM до Nginx + PHP-FPM.
После запуска установщика на Шаг 4, я получил предупреждение, что Hestia не хочет работать с iptables для начинающих: Простое управление брандмауэром с UFW.
Я собcвенно привык работать напрямую с iptables, поэтому я подтверждаю удаления пакета ufw. WARNING: The following packages are already installed ufw* Would you like to remove the conflicting packages? [y/n] y
На следующем шаге будет показано какие компоненты Hestia автоматически установит. Ознакомьтесь с ними и подтвердите, нажав Y.
_ _ _ _ ____ ____ | | | | ___ ___| |_(_) __ _ / ___| _ \ | |_| |/ _ \/ __| __| |/ _` | | | |_) | | _ | __/\__ \ |_| | (_| | |___| __/ |_| |_|\___||___/\__|_|\__,_|\____|_| Hestia Control Panel 1.3.2 www.hestiacp.com ======================================================================== Thank you for downloading Hestia Control Panel! In a few moments, we will begin installing the following components on your server:
======================================================================== Would you like to continue with the installation? [Y/N]: Y
В конце скрипт выведет ссылку (Admin URL), логин и пароль на управление панелью. И предложит перегрузить сервер. Копируем данный для доступа и перегружаем сервер.
Все! Установка Hestia CP завершена. Дальнейшее управление веб панелью Hestia CP происходит при помощи вебинтерфейса (Admin URL), с использованием порта 8083.
Проверить работу демона hestia можно командой lsof:
# lsof -i:8083 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME hestia-ng 522 root 6u IPv4 19159 0t0 TCP *:8083 (LISTEN) hestia-ng 523 admin 6u IPv4 19159 0t0 TCP *:8083 (LISTEN)
Переходим по ссылке Admin URL, указываем логин и пароль. И попадаем в такой интерфейс.
И сразу выключаем автоматической обновление панели Hestia, ибо последствия неконтролируемого обновления, без бекапа можно разгребать долго. Для этого переходим в меню Server → Updates и нажимаем кнопку Automatic Updates, должно получиться как на скриншоте.
Безопасный фаервол - это фаервол в котором по умолчанию все запрещено.
Напомню, что ранее Hestia злостно:) удалила UFW и я наделся что будет из коробки настроен iptables правильно. Но нет, были прописаны правила для определённых портов и настроен fail2ban, но правила по умолчанию открыты. Правила брандмауэра по умолчанию, после установки Hestia, посмотрим командой iptables с ключами -nL -v:
iptables -nL -v Chain INPUT (policy ACCEPT 7166 packets, 1063K bytes) pkts bytes target prot opt in out source destination 3325 773K fail2ban-HESTIA tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8083 21 1324 fail2ban-MAIL tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 25,465,587,110,995,143,993 0 0 fail2ban-FTP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 928 101K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 7476 1220K fail2ban-RECIDIVE tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 1:65535 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 7858 packets, 6693K bytes) pkts bytes target prot opt in out source destination
После изучения файлов с настройками фаервола /etc/iptables.rules и /usr/local/hestia/data/firewall/rules.conf я пришел к выводу, что настройки правильные, но они погрузились только частично. Используя команду iptables-restore перегружаем правила из файла /etc/iptables.rules.
# iptables-restore /etc/iptables.rules
Поле этого входящие пакеты по умолчанию стали блокироваться и загрузились дополнительные правила. Перезагружаем сервер и видим, что восстановились небезопасные разрешающие правила!
При установке Hestia, отключите отключите поддержку модулей iptable и Fail2Ban и далее спокойно используйте UFW.
Функция переключения версии PHP для конкретного сайта должна быть в каждой панели для управления хостингом. Ибо каждая CMS выдвигает свои требования для версии интерпретатора PHP.
Итак, проверим работает ли переключатель PHP в Hestia CP. После установки Hestia, я загрузил файл phpinfo. PHPinfo показал, что у меня установлен PHP версии 7.4.15.
Теперь я хочу установить поддержку PHP например версии 7.3, которую требует например движок DataLife Engine (DLE) (на php 7.4 DLE не работает).
Перехожу в меню Server → Configure → Web server, пролистываю до раздела Enabled PHP versions и ставлю галочку напротив нужно мне версии PHP. Нажимаю кнопку Save. Разработчики предупреждают: "Сохранение изменений может занять несколько минут. Дождитесь завершения процесса и не обновляйте страницу."
Ждем какой-то время за чашкой чая. Страница обновляется. Переходим в настройки тестового сайта и в разделе "Backend Template PHP-FPM" выбираем нужную версию PHP.
Жмем кнопку Save. И обновляем страницу выводимую файлом phpinfo.
И таки да!!! Я вижу версию PHP Version 7.3.27-2+ubuntu20.04.1+deb.sury.org+1. Слава богу! Я действительно не просто потерял время на изучение этой панели и могу сказать панель HestiaCP пригодна к работе и является хорошим продуктом. Рекомендую к использованию на VDS/VPS Zomro.
Управлять базами данных можно в одноименном разделе — DВ. Для создания базы данных нажмите «Добавить БД». Панель предложит заполнить поля:
Сохраните изменения кнопкой в правой части строки операций.
Если вы хотите подключаться к базе данных удаленно, например, со своего компьютера, разрешите соединения на 3306 порт в файрволе панели и отредактируйте файл /etc/mysql/mariadb.conf.d/50-server.cnf, заменив значение в строке bind-address на 0.0.0.0.
Обычно, без использования панелей управления сервером, лимиты меняют в php.ini любым удобным вам консольным редактором, например Nano, vim.
Но у нас панель, давайте найдем, как увеличить максимальный размер закачиваемого файла по HTTP с помощью PHP в Hestia CP.
Не забываем нажать кнопку сохранения "Save". В данном примере, я разрешил загружать файлы до 25 Мегабайт.
Для редактирования php.ini в панели управления Hestia CP смотрите пример выше. Там на последнем скриншоте, в самом низу страницы, расположена кнопка "Advanced Options". При нажатии на которую откроется для редактирования файл php.ini.
Для того чтобы хранить данные на удаленном сервере Hestia поддерживает резервное копирование на внешний FTP сервер.
Рекомендую создавать резервную копию в ночное время, при создании копии увеличивается нагрузка на сервер, из-за чего сайты могут открываться с задержкой.
Бэкап сайта в Hestia CP состоит из:
Если выполнять вход в панель управления под Admin, то по умолчанию резервные копии будут производиться для всех пользователей, созданных в панели управления.
Для того что бы производить резервные копии только необходимых параметров, необходимо выбираем вкладку Исключения. Далее выбираем вкладку Редактирование исключений бэкапа. Заполняем появившиеся поля и указываем необходимые исключения, это означает что указанные папки, базы данных и т.д. не будут занесены в резервную копию. Для применения настроек нажимаем на кнопку Сохранить.
Далее для создания резервной копии с заданными параметрами нажимаем на кнопку Создать бэкап.
Для восстановления информации из резервной копии, во вкладке Backup напротив нужной резервной копии нажимаем кнопку Восстановить. В открывшемся окне выбираем необходимые пункты для восстановления или выбираем Восстановить все нажав на соответствующую кнопку.
Hestia CP как и Vesta CP) использует сервер vsFTPd для настройки FTP соединении.
При подключении клиентом Filezilla полученного доступа получаем ошибку
Ошибка: Ошибка GnuTLS -15 в gnutls_record_recv: An unexpected TLS packet was received.
Гуглим, читаем и не понимаем :)
Много ругани на то что сервер FTP vsftpd ничего не пишет в логах, да и вообще с логами он не дружит (Как посмотреть ошибки логирования пользователей на FTP сервере vsftpd?). В чем-то ругальщики правы и vsftpd действительно не балует логами.
Выход один отключаем информационную соску в виде запросов к Google и включаем здравый смысл. На предыдущем шаге я созда FTP пользователя, но НЕ в стандартной директории, а в поддиректории. Смотрим настройки моего FTP пользователя в /etc/passwd:
# nano /etc/passwd admin_ftpdan30:x:1000:1000::/home/admin/web/vps100.mirax-hotel.com/dan30:/usr/sbin/nologin
Видим chroot настроен на директорию /home/admin/web/vps100.mirax-hotel.com/dan30. Проверяем а существует ли эта директория командой ls:
# ls /home/admin/web/vps100.mirax-hotel.com/dan30 ls: cannot access '/home/admin/web/vps100.mirax-hotel.com/dan30': No such file or directory
Видим, что директория не создана, то есть HestiaCP как и Vesta не создает директорию. Значит создаем нужную директорию вручную, задаем нужные права chown admin:admin dan30. Все можно работать!
Иногда, возникает задача сбросить пароль доступа к панели Hestia или Vesta.
/usr/local/vesta/bin/v-change-user-password USER PASSWORD
/usr/local/hestia/bin/v-change-user-password USER
Создание самоподписанного сертификата с помощью openssl
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 365 -subj '/CN=localhost'
где
Для настройки SSL сертификата переходим во вкладку «WEB». В новом окне находим пункт «Поддержка SSL» вводим данные от сертификата который создали с помощью openssl. В первое окно содержимое файла cert.pem, во второе окно содержимое файла key.pem.
IonCube Loader часто требуемое расширение PHP и подробно описана в статье Установка и включение IonCube в PHP на хостинг. Разработчики Hestia упростили задачу установки IonCube на свою панель и создали простой bash скрипт автоматизирующий процесс. Для использования и запуска скрипта используйте команды:
wget https://raw.githubusercontent.com/jaapmarcus/ioncube-hestia-installer/main/install_ioncube.sh chmod +x install_ioncube.sh ./install_ioncube.sh
Hestia очень качественная, простая и к тому же бесплатная панель. Чтобы не выводить в отдельные шаги, несколько замечаний при работе с HestiaCP: