- ベストアンサー
サブドメイン自動化のhttpd.conf設定
- 専用サーバーにてwebサイトを作成しています。webサイトの会員ユーザ毎に、サブドメインを自動生成できるようにしたいと考えています。
- ユーザが登録すると、usernameフォルダが自動で作成されるようになっています。そのフォルダ名を利用し、username.example.jpのようなサブドメインでアクセスできるようにしたいです。
- VirtualDocumentRootのところの、domains1 のディレクトリ内に作成するユーザーフォルダの数に制限をかけようと考えていて、ユーザー登録が1000毎に、domains2, domain3と自動で作成されていくようにしています。このような場合、どのような記述をすればよいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
無理じゃろ。例え NameVirtualHost *:80 <VirtualHost *:80> ServerName domains1.example.jp ServerAlias *.example.jp VirtualDocumentRoot /var/www/html/domains1/%1 </VirtualHost> <VirtualHost *:80> ServerName domains2.example.jp ServerAlias *.example.jp VirtualDocumentRoot /var/www/html/domains2/%1 </VirtualHost> というような設定が仮に出来たとして、実際にhoge.example.jpでアクセスされたら上だけを探しにいくと思う。 以下のような設定ならできる。けど、その都度ドメインの追加とhttpdの再起動が必要。 NameVirtualHost *:80 <VirtualHost *:80> ServerName domains1.example.jp ServerAlias hoge.example.jp mike.example.jp muka.example.jp cha.example.jp last.example.jp VirtualDocumentRoot /var/www/html/domains1/%1 </VirtualHost> <VirtualHost *:80> ServerName domains2.example.jp ServerAlias momonga.example.jp goku.example.jp gohan.example.jp goten.example.jp VirtualDocumentRoot /var/www/html/domains2/%1 </VirtualHost> 複数IPがあれば話は別だが。もちろんDNSも振り分ける必要がある。 NameVirtualHost xxx.xxx.xxx.1:80 NameVirtualHost xxx.xxx.xxx.2:80 <VirtualHost xxx.xxx.xxx.1:80> ServerName domains1.example.jp ServerAlias *.example.jp VirtualDocumentRoot /var/www/html/domains1/%1 </VirtualHost> <VirtualHost xxx.xxx.xxx.2:80> ServerName domains2.example.jp ServerAlias *.example.jp VirtualDocumentRoot /var/www/html/domains2/%1 </VirtualHost> 解決になってないけど、会員ページならいっその事サブサブドメインにして、サブドメイン+ユーザー名を選ばせたらどうかね。サブドメインの種類をきゃわいいのイカすのナウいの取り揃えたら意外と受けるかもよ。 NameVirtualHost *:80 <VirtualHost *:80> ServerName dora.example.jp ServerAlias *.dora.example.jp VirtualDocumentRoot /var/www/html/dra/%1 </VirtualHost> <VirtualHost *:80> ServerName nobi.example.jp ServerAlias *.nobi.example.jp VirtualDocumentRoot /var/www/html/nobi/%1 </VirtualHost> とにかく、同じワイルドカードのバーチャルホストをマージするような動作はできないと思う。
お礼
回答ありがとうございます。 なるほど、そうですよね。 実現できない事がはっきりしただけで収穫です! linuxの場合、ディレクトリ内に作成できるディレクトリの最大数が約32,000のようなので、 すべてのユーザフォルダをひとつのディレクトリに詰め込んでしまいます。 万単位の会員が集まる可能性もありませんし。 助かりました、ありがとうございます!