Hestia CP 面板安装及使用介绍
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 等等。
官网及资源
后台演示
功能特点介绍
- Apache2, Nginx, PHP-FPM
- 多 PHP 版本集群功能的 DNS 服务器
- POP/IMAP/SMTP 邮件服务器,带反垃圾邮件,病毒扫描
- 支持 MariaDB 和 PostgreSQL 数据库自带 fail2ban 和防火墙
安装条件
- 一台运行 Debian 或 Ubuntu 的服务器或 VPS,推荐使用一个全新安装的系统,避免可能出现的任何问题
- root 权限,或者使用 sudo
安装演示
本文中演示在 Ubuntu 20.04 上安装 HestiaCP。整个过程可能会需要 15 分钟左右。
安装脚本:
可以通过 安装器 自己选择安装的组件。选择组件之后会产生一个命令,你可以根据自己的需要自行选择需要的组件。可以在中文文档中查看默认会安装的组件。
安装完成之后会在日志中看到后台登录的链接,以及默认的用户名(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 thedefault 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 作为网络配置,那么检查一下网络配置。
使用指南
申请 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
创建一个新用户
虽然以 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