HestiaCP
Вход:
- старая на HP: https://dev.zina.com.ua:8083
- новая на Supermicro: http://dev.zina.run:740
Форк более известной панели 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
При установке на этапе настройки сетевых карт нужно выбрать вместо автоконфигурации:
- 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
Т.к. мы переадресовываем с роутера на HP через Порты 755, 766, то нужно их добавить в Firewall.
Переходим на протокол 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
Сама 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.confdomain.zina.com.ua/nginx.conf
Вход: http://dev.zina.com.ua:755/phpmyadmin/
Пароль рута можно найти в конфигурационном файле панели /usr/local/hestia/conf/mysql.conf. Для удобства работы в командной строке, пароль также прописывается в /root/.my.cnf.
Чтобы запустить 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
Добавлена возможность на экране создания 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 строки — добавлен чекбокс создания домена
- Создание собственных NS в VestaCP: