Re: バーチャルドメインの/~ユーザー名/について ( No.1 ) |
|
- æ¥æï¼ 2006/12/08 06:07
- ååï¼ セブン
- 今日は DLさん、
僕はFedora5を使っているため、Fedora4とに違いは分からないのですが、 httpd.confファイル、或いは httpd.confが参照できる外部ファイルに最低限、以下のようにヴァーチャルホストの設定をすればよいかと思います。 尚、DocumentRoot, ServerAdmin, UserDirの項目は各自適当に置き換えてください:
NameVirtualHost *:80
<VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/html/example ServerAdmin example@yahoo.com # 以下の設定で、www.example.com/~<UserName>でアクセスすると # /home/<UserName>/public_html/に飛んでいく。 <IfModule mod_userdir.c> UserDir public_html </IfModule> </VirtualHost>
<VirtualHost *:80> ServerName www.tanakaok.com DocumentRoot /var/www/html/tanakaok ServerAdmin tanakaok@yahoo.com <IfModule mod_userdir.c> UserDir public_html </IfModule> </VirtualHost>
<VirtualHost *:80> ServerName sub.tanakaok.com DocumentRoot /var/www/html/tanakaok/sub ServerAdmin tanakaok@yahoo.com <IfModule mod_userdir.c> UserDir public_html </IfModule> </VirtualHost>
僕の場合は、一つのドメインにサブドメインを設けています。サブドメインについては〜<UserName>でのアクセスは有効にしていないため、なんともいえませんが、上記のような設定で動くと思います。 ちなみに僕の場合は以下の設定を<IfMode mod_userdir.c>の中におくことによって www.example.com/user/<UserName>/でもアクセスできるようにしています。ご参考までに。
AliasMatch ^/user/([^/]+)/(.*) /home/$1/public_html/$2
|
Re: バーチャルドメインの/~ユーザー名/について ( No.2 ) |
|
- æ¥æï¼ 2006/12/08 11:10
- ååï¼ DL
- セブン様
初めまして、こんにちは。 この度はご教授頂きまして、誠に有難う御座います。
疑問に思う事がいくつかあるのですが、よろしいでしょうか? fedoracore4は直接 httpd.confに記入する形式となっています。
メインドメインの example.comは ttp://example.com/~ユーザ名/ でアクセス出来るように 既にhttpd.confに設定済です。
上記の場合でも既に設定してあるメインドメイン「example」を バーチャルホストでも設定を記載しなければならないのでしょうか?
>><VirtualHost *:80> >> ServerName www.example.com >> DocumentRoot /var/www/html/example >> ServerAdmin example@yahoo.com >># 以下の設定で、www.example.com/~<UserName>でアクセスすると >># /home/<UserName>/public_html/に飛んでいく。 >> <IfModule mod_userdir.c> >> UserDir public_html >> </IfModule> >></VirtualHost>
>><VirtualHost *:80> >> ServerName www.tanakaok.com >> DocumentRoot /var/www/html/tanakaok >> ServerAdmin tanakaok@yahoo.com >> <IfModule mod_userdir.c> >> UserDir public_html >> </IfModule> >></VirtualHost>
新たに追加したいホストにも同じ設定で
>># /home/<UserName>/public_html/に飛んでいく。
という事はメイン以外であるドメインでも「~ユーザ名/」部分は 全て共通扱いになりどのドメインからでも「~ユーザ名/」でアクセス出来るようになっていましますよね?
例 ユーザ:takochan を追加したい場合
http://example.com/~takochan/ http://tanakaok.com/~takochan/ http://sub.tanakaok.com/~takochan/
もし可能であれば、上記の3つのドメインに対して ユーザ(/~takochan/)を別々にする方法は存在するのでしょうか?
方法として
example.comの場合は /home/*/public_html そのままでも問題ないと思うのですが tanakaok・sub.tanakaok.comは違うディレクトリに指定する方法という事になるでしょうか? 先程の<IfModule mod_userdir.c>ではどのような記載になるでしょうか?
質問ばかりで申し訳ありません。 どうかよろしくお願い致します。
|
Re: バーチャルドメインの/~ユーザー名/について ( No.3 ) |
|
- æ¥æï¼ 2006/12/08 12:45
- ååï¼ セブン
- DLさん、
ご教授などと言われると恐縮してしまいます。 僕も初心者です。いまだにこのサイトに基本的な質問をして皆さんにご迷惑をかけている者です。
Fedoraのヴァージョンの違というより、これは httpd なので、むしろ Apacheのヴァージョンの違いがただしいですね、僕の指摘が適切でありませんでした。僕もApacheのconfigファイルに関しては、まだ精通しているわけではないので、何方か経験者このスレッドを観覧時に、誤りがあれば指摘していただけたらと願っています。
> 上記の場合でも既に設定してあるメインドメイン「example」を > バーチャルホストでも設定を記載しなければならないのでしょうか?
DLさんが、httpd.confファイル内で<VirtualHost *:80> Directiveの枠外で設定したメインドメイン(exmaple.com)の内容を基本的に<VirtualHost *:80>内に設定し直すことになると思います。ただ、<VirtualHost *:80>の枠内に置けないDirective もあるので注意が必要です。でもそのような間違いが有っても、httpdモジュールのローディング時に警告を出してくれるのできずけると思います。 DLさんの場合は、新しく記述した3つ分のVirtualHostの内容をhttpd.confファイル内の一番下に置けばよいかと思います。僕の場合(おそらくDLさんの場合も)、<VirtualHost *:80>枠外の内容はほとんどのオリジナルと同じになっています。ただApache2.0 とApache2.2(僕が使っているヴァージョン)では若干違いがあるのかも?
僕のメインドメインの設定はこんな感じです:
<VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/html ServerAdmin example@yahoo.com
<IfModule mod_userdir.c> UserDir public_html
# # All other user can access with http://www.example.com/user/<user name>. # AliasMatch ^/user/([^/]+)/(.*) /home/$1/public_html/$2 </IfModule>
<Directory "/var/www/html"> Options Includes ExecCGI FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
<Directory "/home/*/public_html"> AllowOverride All Options IncludesNoExec ExecCGI FollowSymLinks <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
ServerSignature Off ErrorLog logs/www.example.com-error_log CustomLog logs/www.example.com-access_log common AddHandler cgi-script .cgi .pl </VirtualHost>
> もし可能であれば、上記の3つのドメインに対して > ユーザ(/~takochan/)を別々にする方法は存在するのでしょうか? > 方法として
ご指摘の通り、三つのドメインどれも同一のサーバーで動いているため、特定のユーザ名に対する解釈はどのドメインからも当然同じものになってしまいます。もし同一のユーザ名に対し異なるドメインごとにユーザのDocumentRootを変えたいのであれば、DLさんご指摘の方法(UserDirの内容をそれぞれのドメインで変える)でよいかと思います。つまり以下のような感じになるかと思います。この場合それぞれのユーザのHomeDirectoryに新しいDirectoryを用意しなくてはいけませんが、、
NameVirtualHost *:80
<VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/html/example ServerAdmin example@yahoo.com # 以下の設定で、www.example.com/~<UserName>でアクセスすると # /home/<UserName>/public_example_html/に飛んでいく。 <IfModule mod_userdir.c> UserDir public_example_html </IfModule> </VirtualHost>
<VirtualHost *:80> ServerName www.tanakaok.com DocumentRoot /var/www/html/tanakaok ServerAdmin tanakaok@yahoo.com <IfModule mod_userdir.c> UserDir public_tanakaok_html </IfModule> </VirtualHost>
<VirtualHost *:80> ServerName sub.tanakaok.com DocumentRoot /var/www/html/tanakaok/sub ServerAdmin tanakaok@yahoo.com <IfModule mod_userdir.c> UserDir public_tanakaok_html/sub </IfModule> </VirtualHost>
もし上記内容に誤りや、より良い方法があれば、ご指南よろしくお願いいたします。
|
Re: バーチャルドメインの/~ユーザー名/について ( No.4 ) |
|
- æ¥æï¼ 2006/12/08 14:53
- ååï¼ DL
- お返事頂きまして、誠に有難う御座います。
>>ご教授などと言われると恐縮してしまいます。 >>僕も初心者です。いまだにこのサイトに基本的な質問をして皆さんにご迷惑をかけている者です。
いえいえ、とんでもないです。
>>DLさんが、httpd.confファイル内で<VirtualHost *:80> Directiveの枠外で設定したメインドメイン >>(exmaple.com)の内容を基本的に<VirtualHost *:80>内に設定し直すことになると思います。ただ、>><VirtualHost *:80>の枠内に置けないDirective もあるので注意が必要です。でもそのような間違いが有っ >>も、httpdモジュールのローディング時に警告を出してくれるのできずけると思います。 >>DLさんの場合は、新しく記述した3つ分のVirtualHostの内容をhttpd.confファイル内の一番下に置けばよいか>>と思います。僕の場合(おそらくDLさんの場合も)、<VirtualHost *:80>枠外の内容はほとんどのオリジナル>>と同じになっています。ただApache2.0 とApache2.2(僕が使っているヴァージョン)では若干違いがあるの>>かも?
なるほど、新たにバーチャルドメインにてドメインを追加する場合には メインで既に設定してる内容も<VirtualHost *80>に記載しなければならないのですね。 とても勉強になりました。
>>ご指摘の通り、三つのドメインどれも同一のサーバーで動いているため、特定のユーザ名に対する解釈はどの>>ドメインからも当然同じものになってしまいます。もし同一のユーザ名に対し異なるドメインごとにユーザの>>DocumentRootを変えたいのであれば、DLさんご指摘の方法(UserDirの内容をそれぞれのドメインで変える)>>でよいかと思います。つまり以下のような感じになるかと思います。この場合それぞれのユーザの>>HomeDirectoryに新しいDirectoryを用意しなくてはいけませんが、、
>>NameVirtualHost *:80 >><VirtualHost *:80> >> ServerName www.example.com >> DocumentRoot /var/www/html/example >> ServerAdmin example@yahoo.com >># 以下の設定で、www.example.com/~<UserName>でアクセスすると >># /home/<UserName>/public_example_html/に飛んでいく。 >> <IfModule mod_userdir.c> >> UserDir public_example_html >> </IfModule> >></VirtualHost>
>><VirtualHost *:80> >> ServerName www.tanakaok.com >> DocumentRoot /var/www/html/tanakaok >> ServerAdmin tanakaok@yahoo.com >> <IfModule mod_userdir.c> >> UserDir public_tanakaok_html >> </IfModule> >></VirtualHost>
>><VirtualHost *:80> >> ServerName sub.tanakaok.com >> DocumentRoot /var/www/html/tanakaok/sub >> ServerAdmin tanakaok@yahoo.com >> <IfModule mod_userdir.c> >> UserDir public_tanakaok_html/sub >> </IfModule> >></VirtualHost>
何度もお手数おかけして申し訳ないのですが、 <IfModule mod_userdir.c>中にあります、 UserDir public_*についてあまりよく理解出来ておりません。
下記の認識でよろしいのでしょうか? 全て共通にする場合は UserDir public_html
それぞれドメイン別にする場合は public_tanakaok_html public_example_html public_tanakaok_html/sub
ここまでは理解出来ました。
ここから/~ユーザ名/の新規ユーザを追加した場合
takosanの場合
==ドメイン1== /home/takosan/public_example_html/ http://example.com/~takosan/ =============
==ドメイン2== /home/takosan/public_tanakaok_html/ http://tanakaok.com/~takosan/ =============
==ドメイン2== /home/takosan/public_tanakaok_html/sub http://sub.tanakaok.com/~takosan/ =============
上記にてそれぞれ個別に表示されるという事ですね。 という事は public_*に対してそれぞれに別けているという認識でよろしいでしょうか?
私の場合は mkdir /etc/skel/public_html
をして新規ユーザ追加時に自動で /publi_htmlディレクトリを生成するようにしています。
ドメインごとそれぞれに別ける場合は/public_htmlディレクトリを /public_example_htmlという風に追加毎にディレクトリを変更しなさいという事ですね。
mkdir /etc/skel/public_example_html mkdir /etc/skel/public_tanakaok_html mkdir /etc/skel/public_tanakaok_html/sub
を新規ユーザ追加するたびに選択出来るように効率のよい方法はご存知ではないでしょうか? 例1:exampleドメインに対して新規ユーザ追加と同時に home/*/下層にpubli_example_htmlを自動作成 例2:tanakaokドメインに対して新規ユーザ追加と同時に home/*/下層にpublic_tanakaok_htmlを自動作成
もしご存知でしたらで構わないので、ご教授いただければ幸いです。 どうかよろしくお願い致します。
|
Re: バーチャルドメインの/~ユーザー名/について ( No.5 ) |
|
- æ¥æï¼ 2006/12/08 17:51
- ååï¼ セブン
- > 全て共通にする場合は UserDir public_html
> それぞれドメイン別にする場合は > public_tanakaok_html > public_example_html > public_tanakaok_html/sub
そのように理解しています。
>==ドメイン1== >/home/takosan/public_example_html/ >http://example.com/~takosan/ > ============= > ==ドメイン2== > /home/takosan/public_tanakaok_html/ > http://tanakaok.com/~takosan/ > ============= > ==ドメイン2== > /home/takosan/public_tanakaok_html/sub > http://sub.tanakaok.com/~takosan/ > ============= > 上記にてそれぞれ個別に表示されるという事ですね。 > という事は public_*に対してそれぞれに別けているという認識でよろしいでしょうか?
はい、つまり http://tanakaok.com/~takosan/ とブラウザー上に入力されると /home/takosan/public_tanakaok_html/index.htmlが実行され、 http://sub.tanakaok.com/~takosan/と入力されると /home/takosan/public_tanakaok_html/sub/index.htmlが実行されるという具合です。
> を新規ユーザ追加するたびに選択出来るように効率のよい方法はご存知ではないでしょうか?
すみません、質問の意味いまひとつ分からないのですが、 僕もそのようなドメインネームに対するユーザ登録の割付をした経験がないので、わかりません。
|