[root@sv00 ~]# cat /etc/httpd/conf/httpd.conf ~ #ServerName www.example.com:80 ~ <VirtualHost *:80> # Default VirtualHost # Use Main Setting </VirtualHost> <VirtualHost *:80> ServerName sv01.example.dom DocumentRoot /var/www/html/sv01 </VirtualHost> [root@sv00 ~]# hostname sv00.example.com [root@sv00 ~]# httpd -S VirtualHost configuration: *:80 is a NameVirtualHost default server sv00.example.com (/etc/httpd/conf/httpd.conf:357) port 80 namevhost sv00.example.com (/etc/httpd/conf/httpd.conf:357) port 80 namevhost sv01.example.dom (/etc/httpd/conf/httpd.conf:361) ServerRoot: "/etc/httpd" Main DocumentRoot: "/var/www/html" ~
こんな感じで、hostname が FQDN で設定されていると、default の ServerName は hostname が使用される。
hostname が 「sv00」だけだと
[root@sv00 ~]# apachectl configtest AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192:168:0:1. Set the 'ServerName' directive globally to suppress this message Syntax OK
ってエラーになる。
このエラーが出たら、httpd.conf の ServerName を設定してあげる。
[root@sv00 ~]# vi /etc/httpd/conf/httpd.conf ~ ServerName www.example.com:80 ~ <VirtualHost *:80> # Default VirtualHost # Use Main Setting </VirtualHost> <VirtualHost *:80> ServerName sv01.example.dom DocumentRoot /var/www/html/sv01 </VirtualHost>
すると、default の ServerName は httpd.conf の設定が使われる。
[root@sv00 ~]# httpd -S VirtualHost configuration: *:80 is a NameVirtualHost default server www.example.com (/etc/httpd/conf/httpd.conf:357) port 80 namevhost www.example.com (/etc/httpd/conf/httpd.conf:357) port 80 namevhost sv01.example.dom (/etc/httpd/conf/httpd.conf:361) ServerRoot: "/etc/httpd" Main DocumentRoot: "/var/www/html" ~
先頭に定義してある VirtualHost に ServerName を定義すると、先頭の ServerName が使われる。
[root@sv00 ~]# vi /etc/httpd/conf/httpd.conf ~ ServerName www.example.com:80 ~ <VirtualHost *:80> ServerName sv99.example.com </VirtualHost> <VirtualHost *:80> ServerName sv01.example.dom DocumentRoot /var/www/html/sv01 </VirtualHost> [root@sv00 ~]# httpd -S VirtualHost configuration: *:80 is a NameVirtualHost default server sv99.example.com (/etc/httpd/conf/httpd.conf:357) port 80 namevhost sv99.example.com (/etc/httpd/conf/httpd.conf:357) port 80 namevhost sv01.example.dom (/etc/httpd/conf/httpd.conf:361) ServerRoot: "/etc/httpd" Main DocumentRoot: "/var/www/html" ~
この状態で、
[root@sv00 ~]# hostname sv00.example.com [root@sv00 ~]# apachectl restart
ってやっても、default の ServerName は sv99.example.com のまま。
main の ServerName をコメントにしても、sv99.example.com のまま。先頭の VirtualHost の ServerName が default になる。
メイン | VirtualHost | hostname | default |
#ServerName www.example.com | - | sv00 | IPアドレス |
#ServerName www.example.com | - | sv00.example.com | hostname |
#ServerName www.example.com | ServerName sv99.example.com | sv00 | IPアドレス |
#ServerName www.example.com | ServerName sv99.example.com | sv00.example.com | hostname |
ServerName www.example.com | - | sv00 | メイン |
ServerName www.example.com | - | sv00.example.com | メイン |
ServerName www.example.com | ServerName sv99.example.com | sv00 | VirtualHost |
ServerName www.example.com | ServerName sv99.example.com | sv00.example.com | VirtualHost |
0 件のコメント:
コメントを投稿