directadmin重启apache出现提示Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist

今天在主机中重启apache时,突然发现有一行警告提示说/home/admin/domains/sharedip不存在。

如下

[root@localhost ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist   [ OK ]

我使用的是directadmin面板,以前一直没有注意到这个提示,也不知道是什么时候出现的。
虽然这是个警告,肯定不影响apache的正常运行。但看着也是怪怪的。于是研究了一下。

首先我用了一个比较暴力的解决方法,直接在/home/admin/domains目录下,看一下有没有sharedip这个文件夹。
结果发现,并没有,那么默认情况下本身是不是有这个文件夹呢?还是我什么时候不小心给删了?但是我并不是那种随便文件的人,且我没有记得我删过这样的目录,这点自信还是有的。因此,为了验证这个本身是否有这个文件夹,于是我创建了一个新用户myuser,然后在 /home/myuser/domains里查看,发现也没有sharedip 这样的文件夹。

这说明,本身是不存在sharedip 这个文件夹的。
尝试暴力解决,直接mkdir  /home/admin/domains/sharedip 命令,创建了这个文件夹,再重启apache,发现已经没有警告提示。
虽然,这样做已经解决了不再出现警告。但还是没有找到出现这个警告的原因。

于是,还是再深入研究一下。
先简单地,直接查询一下apache的conf目录下的文件,看哪个文件中有关于sharedip的关键字

grep  sharedip  /etc/httpd/conf/*  -rl

得到了结果发现,在 /etc/httpd/conf/ips.conf 该文件中有关于sharedip字符的内容,于是查看该文件内容。
在里面发现了如下内容

<VirtualHost 72.71.151.222:80>
 ServerName shared.domain
 #ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
 #AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
 UserDir public_html
 DocumentRoot /home/admin/domains/sharedip

 SuexecUserGroup admin admin

 CustomLog /var/log/httpd/homedir.log homedir
 CustomLog /var/log/httpd/access_log combined
</VirtualHost>

<VirtualHost 72.71.151.222:443>
 SSLEngine on
 SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
 SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
 SSLCACertificateFile /etc/httpd/conf/ssl.crt/server.ca

 ServerName shared.domain
 #ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2
 #AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
 UserDir public_html
 DocumentRoot /home/admin/domains/sharedip

 SuexecUserGroup admin admin

 CustomLog /var/log/httpd/homedir.log homedir
 CustomLog /var/log/httpd/access_log combined

这个 72.71.151.222的IP是我最近刚刚增加的IP,分配给了admin这个reseller,但是还没有分配给任何用户,目前还是free状态。
想必问题就在这了,于是尝试把这个IP分配给了admin下的一个用户。再重启apache,发现已经不再有警告提示。
再尝试了一下,把这个IP取消reseller,即,不分配给任何用户,也不分配给任何代理商,重启APACHE发现也没有警告提示。
于是得出结论。

在我使用的directadmin面板(1.51.3版本),是否会出现Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist的错误提示,取决于以下一种情况。

主机上有多个IP,且IP分配给了reseller,但是没有分配给user,也未将IP shared共享。IP在无reseller归属,且是FREE的状态下,重启APACHE会出现该警告提示。

  1. 除此外,以下两种情况不会出现该提示。
    IP已分配给reseller,且已分配给该reseller的user,或者已分配给reseller,并已在该reseller中shared该IP,则不会出现该提示。
  2. IP已绑定到面板中,但是还未分配给任何reseller,则不会出现该提示。
点赞

发表评论