问题

问题

问题

我有一个运行 Debian 和 DirectAdmin 的虚拟专用服务器。

我已经编辑了 DirectAdmin 使用的 vhost 模板文件,以便子域名不会放置在主域名中public_html。根据指示,我已要求 DirectAdmin 重写虚拟主机,它确实重写了。调整目录结构后,所有网站都运行正常。

但是,添加新域会建立默认目录结构,而添加子域则会出现错误。

详细说明

让我详细解释一下。这是我的自定义模板创建的文档根目录。

虚拟主机2.conf:

|?DOCROOT=`HOME`/domains/`DOMAIN`/www/public_html|

虚拟主机2_sub.conf:

|?DOCROOT=`HOME`/domains/`DOMAIN`/`SUB`/public_html|

创建域 test.pl 后,我得到以下(不正确的)目录:

/home/myuser/domains/test.pl/.htpasswd
/home/myuser/domains/test.pl/public_ftp
/home/myuser/domains/test.pl/public_html

并且 vhost 条目列出了以下(正确的)文档根目录:

DocumentRoot /home/myuser/domains/test.pl/www/public_html

添加子域名的方法相同 - 创建了旧的错误目录结构,但虚拟主机使用新的正确模板。在我更正域的目录结构后:

/home/myuser/domains/test.pl/www/.htpasswd
/home/myuser/domains/test.pl/www/public_ftp
/home/myuser/domains/test.pl/www/public_html

我尝试再次添加子域名。结果出现 3 个错误,并且无法创建子域名:

Error creating /home/myuser/domains/test.pl/public_html/mysub
A directory component in /home/myuser/domains/test.pl/public_html/mysub does not exist or is a dangling symbolic link

Error creating /home/myuser/domains/test.pl/public_html/mysub/cgi-bin
A directory component in /home/myuser/domains/test.pl/public_html/mysub/cgi-bin does not exist or is a dangling symbolic link

Error creating /home/myuser/domains/test.pl/private_html/mysub
A directory component in /home/myuser/domains/test.pl/private_html/mysub does not exist or is a dangling symbolic link

问题

创建域和子域时如何通知 DirectAdmin 新的目录结构?

答案1

更改您的 VHost 模板不会使 DirectAdmin 创建您想要的目录结构,它只会使 Apache 为该域或子域设置不同的文档根目录。

你可能想看看另一个功能

正如您所看到的,您可以编写一个自定义脚本,在创建域或子域后执行,以便它创建您想要的目录结构。

例如,如果它用于子域,您可以/usr/local/directadmin/scripts/custom/subdomain_create_post.sh使用如下内容创建脚本:

#!/bin/sh
rm -rf /home/$username/domains/$domain/public_html/$subdomain
mkdir -p /home/$username/domains/$domain/$subdomain/public_html
chown $username:$username /home/$username/domains/$domain/$subdomain/public_html
exit 0;

相关内容