VestaCP添加SSL证书后,网站根目录未从public_html改为public_shtml的问题
VestaCP中SSL_HOME='single'条件的检查逻辑及sdocroot不生效问题解答
一、SSL_HOME变量的来源
SSL_HOME是VestaCP的全局配置变量,存储在/usr/local/vesta/conf/vesta.conf文件中,默认值为default。只有当你开启独立SSL根目录功能时,这个值才会被设置为single。
二、脚本的检查逻辑
在prepare_web_domain_values函数里,脚本直接读取全局配置中的SSL_HOME值,与字符串'single'做比对:
- 若匹配成功,就将
sdocroot设为$HOMEDIR/$user/web/$domain/public_shtml; - 若不匹配,
sdocroot会和普通的docroot保持一致,也就是public_html。
三、你的问题原因及解决办法
你添加SSL证书后,sdocroot仍指向public_html,说明当前SSL_HOME的值不是single。可以按以下步骤处理:
- 查看当前
SSL_HOME的值:grep SSL_HOME /usr/local/vesta/conf/vesta.conf - 若要启用独立SSL根目录,修改配置文件:
打开/usr/local/vesta/conf/vesta.conf,将SSL_HOME='default'修改为SSL_HOME='single'。 - 重启VestaCP服务:
service vesta restart - 重新生成域名的SSL配置:
可以在VestaCP面板的域名管理页面点击「编辑」并保存,或者用命令行执行:
完成后v-rebuild-web-domain admin 你的域名%sdocroot%会被替换成public_shtml,SSL配置文件里的根目录也会同步更新。
内容的提问来源于stack exchange,提问作者Nina
相关产品推荐
相关产品推荐

