Hestia CP 是一个开源的 Linux 服务器控制面板(Control Panel),HestiaCP fork 自另一款流行的控制面板 VestaCP 。由于 VestaCP 开发和维护趋于停止,很多安全问题和漏洞没有及时修复,所以有人从 VestaCP 拉出新分支进行开发和维护。Hestia 可以作为 aaPanel(宝塔面板)的很好的开源代替。
HestiaCP 提供了一个简单干净的网页界面,给网站维护人员提供了更加简单的方式维护网页服务器。HestiaCP 提供了很多功能,包括
- 管理部署网站(Nginx, Apache,PHP)
- SSL 证书及 SNI Wildcard support
- 数据库(MySQL,PostgreSQL)
- FTP([[ProFTPd]], [[vsftpd]])
- DNS zones(Bind)DNS 服务器
- 邮件服务器([[Dovecot]], [[exim4]])支持 [[SPF]]、[[DKIM]] 等
- 垃圾邮件扫描([[SpamAssassin Score]])
- 邮件病毒扫描([[ClamAV]])
- 多种数据备份方案
HestiaCP 还提供了基于命令行的管理工具,具体可以见 文档。
另一个值得一说的功能就是,HestiaCP 提供了一键安装网站(Quick Install App)的功能,默认提供了一些非常受欢迎的网页应用,包括 [[WordPress]], [[Drupal]], [[Joomla]], [[Opencart]], [[PrestaShop]], [[Lavarvel]], [[Symfony]] 等等。
在接触 Hestia 之前,有段时间直接使用 LNMP,或者使用 [[aapanel]],但后来发现 aaPanel 的 License 或许存在某些问题,并且在读了 Stallman 的 著作 之后对自由软件的认识更深刻了一些,所以直接替换成 GPL 发布的 Hestia。作为 aaPanel 的开源代替品,发现 Hestia 还是非常不错的。
后台演示:
Features
- Apache2, Nginx, PHP-FPM
- 多 PHP 版本
- 集群功能的 DNS 服务器
- POP/IMAP/SMTP 邮件服务器,带反垃圾邮件,病毒扫描
- 支持 MariaDB 和 PostgreSQL 数据库
- 自带 [[fail2ban]] 和防火墙
Prerequisites
- 一台运行 Debian 或 Ubuntu 的服务器或 VPS,推荐使用一个全新安装的系统,避免可能出现的任何问题
- root 权限,或者使用
sudo
Installation
本文中演示在 Ubuntu 20.04 上安装 HestiaCP。整个过程可能会需要 15 分钟左右。
安装脚本:
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
bash hst-install.sh
可以通过 安装器 自己选择安装的组件。选择组件之后会产生一个命令:
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
sudo bash hst-install.sh --apache no --phpfpm yes --multiphp no --vsftpd yes --proftpd no --named yes --mysql yes --postgresql no --exim yes --dovecot yes --sieve no --clamav no --spamassassin no --iptables yes --fail2ban yes --quota no --api yes --interactive yes --with-debs no --port '8083' --hostname 'your_hostname' --email 'i@youremail.com' --password 'your_password' --lang 'en'
你可以根据自己的需要自行选择需要的组件。可以在官网 文档 中查看默认会安装的组件。
安装完成之后会在日志中看到后台登录的链接,以及默认的用户名(admin)和密码。脚本执行完成后可能会需要一次重启来完成安装。
访问 https://ip:8083
,或者如果已经配置了域名 A 记录指向该 IP,也可以使用域名加端口来访问。
netplan 错误
安装过程中如果遇到:
[ * ] Installing dependencies...
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!
WARNING: Your network configuration may not be set up correctly.
Details: The netplan configuration directory is empty.
You may have a network configuration file that was created using systemd-networkd.
It is strongly recommended to migrate to netplan, which is now the
default network configuration system in newer releases of Ubuntu.
While you can leave your configuration as-is, please note that you
will not be able to use additional IPs properly.
If you wish to continue and force the installation,
run this script with -f option:
Example: bash hst-install-ubuntu.sh --force
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!
Error: Unable to detect netplan configuration.
这个错误是因为 Ubuntu 没有使用 netplan,或者 VPS 主机提供的镜像没有使用 netplan,但是 /etc/netplan
文件夹存在,这就导致 HestiaCP 安装脚本执行过程中判断错误。
解决方案:查看 /etc/netplan
文件夹,如果配置文件夹是空的,那么可以直接删除该文件夹,如果确定自己已经使用了 netplan 作为网络配置,那么检查一下网络配置。
Usage
申请 Let’s Encrypt SSL 证书
在完成安装访问后台的时候,浏览器会报 Your connection is not private 的错误,这是因为 SSL 证书缺失了。
可以使用 v-add-letsencrypt-host
命令来申请证书。
不过我在执行的过程中发生一些问题,报错:
Error: Let's Encrypt validation status 400 (xxx.einverne.info). Details: Unable to update challenge :: authorization must be pending
Error: Let's Encrypt SSL creation failed
查看发现因为在机器上安装了 Docker,所以虚拟了一个网络端口,在后台 Web 查看域名的时候,看到其中关联的 IP 地址是一个本地的地址 172.17.0.1
,把这个地址修改成 VPS 的真实 IP 地址。然后重新执行命令即可。
如果出现其他的错误,也可以到如下的目录中查看日志:
/var/log/hestia/LE-user-domain-timestamp
Create a new user
虽然以 admin
登录可以在后台做任何事情,但是还是推荐创建一个新用户,以新用户的身份来操作。
添加域名
创建完用户之后以该用户登录,然后在 Web 中,选择添加域名。
添加的过程中有如下配置:
- Domain:需要添加的域名
- IP Address: IP 地址,如果服务器有多个 IP 这里也会显示出来
- Create DNS zone: 如果想要 HestiaCP 来管理 [[DNS zone]] 可以配置
- Enable mail for this domain: 如果要使用该域名来发送邮件可以配置该选项
在高级选项中:
- Aliases: 默认你需要配置
www.yourdomain.com
指向你的域名 - Proxy Support: HestiaCP 默认使用 Nginx 来代理静态文件
- Web Statistics: 是否开启数据记录,默认未开启,但是 HestiaCP 自带了强大的
AWStats
,可以到其 官网 查看 - Custom document root: 默认是
/home/your_user/web/your_website/public_html/
- Enable SSL for this domain: 开启 SSL
- Additional FTP Accounts: 是否创建 FTP 账号
Nginx 模板设置
可以在 /usr/local/hestia/data/templates/web/nginx/
目录下查看到默认的 Nginx 配置模板。其中的默认模板:
default.tpl
default.stpl
可以将默认的模板拷贝到新的文件修改:
cp original.tpl new.tpl
cp original.stpl new.stpl
cp original.sh new.sh
模板中支持的变量可以参考官网
Tips
修改面板的端口
默认情况下 HestiaCP 使用 8083 端口,当然在安装的时候也可以指定,但是如果安装完成之后想要调整端口,可以使用如下的命令:
v-change-sys-port 2083
重置 admin 密码
更改 admin 用户密码
v-change-user-password admin yourpass
或者更改其他任何用户的密码。
更改 hostname
v-change-sys-hostname your.hostname
强制主机 SSL
强制主机名使用 SSL
v-add-letsencrypt-host
v-add-web-domain-ssl-hsts 'admin' 'hcp.domain.com'
v.add-web-domain-ssl-force 'admin' 'hcp.domain.com'
删除不需要的主机方案
rm -fr /usr/local/hestia/install/rhel
rm -fr /usr/local/hestia/install/ubuntu
rm -fr /usr/local/hestia/install/debian/7
rm -fr /usr/local/hestia/install/debian/8
rm -fr /usr/local/hestia/install/debian/9
开放端口
touch /etc/iptables.up.rules
v-add-firewall-rule ACCEPT 0.0.0.0/0 22 TCP SSH
v-add-firewall-rule ACCEPT 0.0.0.0/0 5566 TCP HestiaCP
使用命令行工具
source /etc/profile
PATH=$PATH:/usr/local/hestia/bin && export PATH
修改控制面板的 IP
可以使用命令行:
v-update-sys-ip 1.2.3.4
v-rebuild-web-domains admin
v-rebuild-mail-domains admin
HestiaCP vs VestaCP
HestiaCP 是 VestaCP fork,VestaCP 开发和维护趋于停止,存在许多漏洞和安全性问题。VestaCP 是第一个 Nginx 的 GUI 控制面板。在 VestaCP 之前有很多 CLI-only 的管理工具。
- HestiaCP 支持 Debian 和 Ubuntu
- HestiaCP 添加了 CardDAV/CalDAV/ActiveSync 支持。1
related
- [[aapanel]]
- [[CyberPanel]]
- [[DirectAdmin]]
- [[Control Panel]]