今天在主机中重启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会出现该警告提示。
- 除此外,以下两种情况不会出现该提示。
IP已分配给reseller,且已分配给该reseller的user,或者已分配给reseller,并已在该reseller中shared该IP,则不会出现该提示。 - IP已绑定到面板中,但是还未分配给任何reseller,则不会出现该提示。