有坂深雪 Miyuki Arisaka
有坂深雪 Miyuki Arisaka

[Debain]安装HestiaCP

2021新年快乐 🌞㊗☃ 最近利用时间尝试了HestiaCPmyVesta这两套源自于VestaCP的虚拟主机管理系统 🐱‍👓🐱‍ 🐱‍👓 从特点来说,除了都是只支援Debain系统之外(HestiaCP也支援Ubuntu),都非常强调安全性,但由于HestiaCP本身就有自带PHP版本选择器(有5.4、7.0~7.4、8.0可选),这就比较适合建站环境或是爱折腾的小朋友;而且HestiaCP的教学文件比较详细,其在github上面的星星数量比较多,而且值得一说的是网站设定HSTS、HTTP/2后,在ssllabs测试直接就能拿到A+的成绩,不需要在额外折腾喔 🐱‍🏍 实际安装操作的感觉也是觉得HestiaCP比较贴近我的使用习惯、而且后台重新美化过 👍😘💪 当然myVesta也是很不错的,两者用起来就跟VestaCP差不多,这边留个笔记做纪录 🏂🐱‍🏍🏇

前置动作

由于我的个人习惯一直都是将主机名称设定为我要设定的网域名称(通常是子网域),而在HestiaCP的SSL设定可直接套用,所以我觉得HestiaCP比较贴近我的使用习惯 🚅🏎🛸🛥🚆

开始安装HestiaCP

操作前先进入screen以避免断线 🤓

screen -S HestiaCP

我这边的设定是安装Apache、NGiNX、多重PHP、Bind、Exim、MariaDB、Vsftpd、Fail2Ban,完全排除Email相关的功能是因为会吃非常多的资源;在这边又发现HestiaCP有一个优点是可以直接指定使用的语系,并且可以指定控制台使用的连接埠 😎 其他相关的安装选项可以参考HestiaCP的教学文件

由于Debain系统的特性,大多数软体都刷刷刷的用apt就搞定了,起身动一动、泡个咖啡,大约15分钟内就能安装完毕了,而在安装完毕后会在SSH画面显示登入资讯,记得将登入密码抄下来然后重开机 🤖🤓🤖

调教HestiaCP

# 连结HestiaCP的小程式到/usr/bin来方便操作 🤓

# 使用主机名称建立SSL,并产生HSTS、HTTP/2设定来增强安全性,然后强制HTTP转址到HTTPS 🤓

主机名称与网域名称不同者需要改成用此指令 🤖

v-add-letsencrypt-domain admin lax1.520.be

# SSL档案位置 🤖

/home/admin/conf/web/lax1.520.be/ssl/lax1.520.be.crt
/home/admin/conf/web/lax1.520.be/ssl/lax1.520.be.key
/home/admin/conf/web/lax1.520.be/ssl/lax1.520.be.ca

# 删除不需要的主机方案 🤓

# 自订白名单 🤓

# 范例 – 自订开放的端口 🤖

# 自订Fail2ban白名单 🤓

调教PHP

由于PHP 7.3版本不新也不旧,相关的套件也多,所以比起其他版本是比较适合建站环境,推荐使用 🤓🤖🤓

# 调整PHP 7.3参数,记忆体大一点的可以额外再提高opcache.memory_consumption这个参数 🤓

这边最尾端只要出现Syntax OK的讯息,就代表设定都OK了~ 🤖

# 安装Sqlite3、Redis、Memcached 🤓

# 安装相关PHP套件 🤓

# 调整Redis参数,记忆体大一点的可以额外再提高maxmemory这个参数 🤓

# 重启并验证Redis 🤓

systemctl restart redis
systemctl restart php7.3-fpm
systemctl restart apache2
ps ax | grep redis-server && lsof -itcp -n -P | grep redis-server
php -m | grep redis
php -m | grep igbinary
redis-cli MONITOR

这边只要都有出现回应就代表OK了 🤖

调教MariaDB

# 变更资料库编码为utf8mb4,防止表情符号出现乱码 🤓

# 查询MySQL root密码 🤓

cat /usr/local/hestia/conf/mysql.conf | grep PASSWORD

# 将上面查询到的MySQL root密码,替换到下面的OOXX,然后显示目前编码 🤓

mysql -u root -pOOXX
show variables where variable_name like 'character_set_%' or variable_name like 'collation%';
quit
mysqladmin -u root -pOOXX status

建立初始环境

# 建立FTP帐号,登录帐号admin_ftp001,登录密码OOXX 🤓

groupadd sftp-only
v-add-web-domain-ftp admin lax1.520.be ftp001 OOXX

# 建立资料库,资料库名称admin_001使用者名称admin_001、使用者密码OOXX 🤓

v-add-database admin 001 001 OOXX mysql

# 建立网站统计 🤓

v-change-web-domain-stats 'admin' 'lax1.520.be' 'awstats'

# 下载常用工具 🤓

##### 初始环境
HestiaCP: https://lax1.520.be:8083/
帐号:admin
密码:OOXX
> ftp://admin_ftp001:OOXX@lax1.520.be/public_html
# FTP帐号admin_ftp001
# FTP密码OOXX
# 本机路径: /home/admin/web/lax1.520.be/public_html
# MySQL资料库名称: admin_001
# MySQL帐号: admin_001
# MySQL密码: OOXX
# 常用工具
> http://lax1.520.be/phpmyadmin/
> http://lax1.520.be/x-prober.php
> http://lax1.520.be/whoami.php
> http://lax1.520.be/php-benchmark-script.php
> http://lax1.520.be/woltlab-test.php

结语

由于VestaCP这套的虚拟主机管理系统已经已经很成熟,所以HestiaCP要调教的地方不多 🤷‍♂️🤷‍♀️🤷‍♂️ 实际上在2GB记忆体的VPS上运作跑Wordpress就非常顺畅,控制台也比VestaCP好看很多,目前使用下来的感觉就只差期待日后能支援IPv6 🍻🍺🍻

ref.

关于 穷苦人家的小孩

In every democracy, the people get the government they deserve. ~Alexis de Tocqueville

您可能会喜欢

天使もえ 天使萌 Amatsuka Moe

systemd-fsck-root服务启动失败的解决办法

今天半夜当当当的被警告信吵醒, …