HestiaCP

Матеріал з Wiki.Zina
Версія від 11:21, 21 березня 2022, створена >Zina (→= WWW)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Вход:

Форк более известной панели VestaCP.

Установка

[ред. | ред. код]

Сначала ставим чистую Ubuntu Server 20.04

Команды установки здесь: https://hestiacp.com/

Hestia:

bash hst-install.sh --postgresql yes --multiphp yes --spamassassin no --fail2ban no --dovecot no --spamassassin no --clamav no --hostname dev.zina.run --email root@zina.design --password ulibakus09
sudo bash hst-install.sh --multiphp yes --port 740 --hostname dev.zina.run --email root@zina.design --password ulibakus09

После установки меняем порт веб-интерфейса на, например, 740:

sudo -i
v-change-sys-port 740

Локальный IP

[ред. | ред. код]

Ubuntu Server 18.04

[ред. | ред. код]

При установке на этапе настройки сетевых карт нужно выбрать вместо автоконфигурации:

  • Subnet: 192.168.1.0/24
  • Address: 192.168.1.105
  • Gateway: 192.168.1.10

Если была выбрана автоконфигурация, то после установки проверяем локальный IP:

ip addr

Проверяем, есть ли файл 50-cloud-init.yaml:

ls /etc/netplan/

Смотрим, что написано в нем:

cat /etc/netplan/50-cloud-init.yaml

Делаем бекап:

sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak

Правим sudo vim /etc/netplan/50-cloud-init.yaml:

network:
   ethernets:
       enp5s0f0:
           addresses: [192.168.1.105/24]
           gateway4: 192.168.1.10
           dhcp4: no
           nameservers:
               addresses: [8.8.8.8,8.8.4.4]
           optional: true
   version: 2

Проверяем:

sudo netplan --debug apply

Применяем:

sudo netplan apply

HestiaCP сама определяет локальный IP типа 172.17.0.1 и подставляет его затем в конфиги Apache, из-за чего сайты могут открываться некорректно.

Достаточно просто удалить этот IP через админку https://dev.zina.com.ua:8083/list/ip/ или вручную:

sudo rm /usr/local/hestia/data/ips/172.17.0.1

Порты 755, 766

[ред. | ред. код]

Т.к. мы переадресовываем с роутера на HP через Порты 755, 766, то нужно их добавить в Firewall.

SSL на основном домене панели

[ред. | ред. код]

Переходим на протокол HTTPS. SSL сертификаты VestaCP

Сначала создать домен для панели (admin — Web — Добавить домен). Например, это dev.zina.com.ua.

Сгенерировать для него сертификат Lets Encrypt.

Затем:

cd /usr/local/hestia/ssl/
mv certificate.crt certificate.crt.bak
mv certificate.key certificate.key.bak
ln -s /home/admin/conf/web/dev.zina.com.ua/ssl/dev.zina.com.ua.crt /usr/local/hestia/ssl/certificate.crt
ln -s /home/admin/conf/web/dev.zina.com.ua/ssl/dev.zina.com.ua.key /usr/local/hestia/ssl/certificate.key
service hestia restart

Несколько версий PHP

[ред. | ред. код]

Конфиги

[ред. | ред. код]

Сама Hestia:

/usr/local/hestia/

Nginx:

/etc/nginx/conf.d/domains

/etc/init.d/nginx restart

Решение проблемы с обновлением SSL сертификата:

Поменял Proxy Template https://dev.zina.com.ua:8083/edit/web/?domain=jira.zina.com.ua на новый шаблон:

/usr/local/hestia/data/templates/web/nginx/jira.stpl
/usr/local/hestia/data/templates/web/nginx/jira.tpl

Новый шаблон для апача:

/usr/local/hestia/data/templates/web/apache2/yii2-basic.tpl
/usr/local/hestia/data/templates/web/apache2/yii2-basic.stpl

Для совместной работы над сайтами используем юзера dev.

  • Файлы сайтов: /home/dev/web/
  • Конфиги сайтов: /home/dev/conf/web/ — имена типа:
    • domain.zina.com.ua/apache2.conf
    • domain.zina.com.ua/nginx.conf

Sprut.io — файлменеджер

[ред. | ред. код]

https://dev.zina.com.ua:9443/

https://sprut.io/ru/install

phpMyAdmin

[ред. | ред. код]

Вход: http://dev.zina.com.ua:755/phpmyadmin/

Пароль рута можно найти в конфигурационном файле панели /usr/local/hestia/conf/mysql.conf. Для удобства работы в командной строке, пароль также прописывается в /root/.my.cnf.

MC — Midnight Commander

[ред. | ред. код]

Чтобы запустить mc под нерутовым пользователем:

cd /home/username
mkdir .config .cache .local
chown username:username .config .cache .local

Проблемы

[ред. | ред. код]

Раздувшиеся лог-файлы

[ред. | ред. код]

Была проблема, когда /var/log/syslog раздулся до более 30 Гб, забив все свободное место в корневом разделе.

Чтобы этого избежать в дальнейшем, сделаны настройки в соответствии с рекомендацией https://askubuntu.com/a/1083570:

vim /etc/logrotate.d/rsyslog
       size=100M
       hourly
vim /etc/rsyslog.d/50-default.conf
$outchannel mysyslog,/var/log/syslog,100048576
#*.*;auth,authpriv.none         -/var/log/syslog
*.*;auth,authpriv.none  :omfile:$mysyslog
service rsyslog restart

Наши доработки Hestia

[ред. | ред. код]

Интеграция с созданием домена в ISPManager

[ред. | ред. код]

Добавлена возможность на экране создания Web Domain https://dev.zina.com.ua:8083/add/web/ поставить галочку "Создать домен в ISPmanager", после чего домен будет создан на DNS сервере ISPmanager https://hosting.zina.design/ispmgr.

Модифицированы следующие файлы (исходя из корня Hestia /usr/local/hestia).

Добавлены bash скрипты:

  • bin/isp-create-domain — создание домена, передаваемые аргументы (домен, хостинг, данные авторизации)
  • bin/isp-is-have-domain — получение списка доменов, передаваемы аргументы (хостинг, данные авторизации)

Модифицированы:

web/inc/main.php
  • 5-8 строки — созданы константы для взаимодействия с API ISPManager
  • 385-419 строки — функции для взаимодействия с bash скриптами
web/add/web/index.php
  • 130-149 строки — обработка запроса: выбран ли чекбокс для создания домена в ISPManager
web/templates/admin/add_web.html
  • 7-10 строки — вывод сообщения по запросу создания домена в ISPManager (если чекбокс выбран)
  • 202-206 строки — добавлен чекбокс создания домена

Ссылки

[ред. | ред. код]