はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 バーチャルドメインの/~ユーザー名/について
日時: 2006/12/08 01:24
名前: DL

FedoraCore4 Apache2の環境でサーバーを運営しています。

現在の環境は下記の構成になってます。

ドメイン: example.com
ttp://example.com/~ユーザ名/
でアクセス出来るように httpd.confに設定しています。

新たに追加したいバーチャルドメイン
tanakaok.com

上記のバーチャルドメインにも 
ttp://tanakaok.com/~ユーザ名/
という風に設定するにはどこをどう設定すれば良いのでしょうか?

またサブドメインにも ~/ユーザ名/という風に出来るものなのでしょうか?
例:
ttp://sub.tanakaok.com/~ユーザ名/
もし出来るのであれば、上記の方法を兼ねて教えて頂ければ助かります。

どうかよろしくお願い致します。
メンテ

Page:  [1] [2]

■ コンテンツ関連情報

 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が実行されるという具合です。

> を新規ユーザ追加するたびに選択出来るように効率のよい方法はご存知ではないでしょうか?

すみません、質問の意味いまひとつ分からないのですが、
僕もそのようなドメインネームに対するユーザ登録の割付をした経験がないので、わかりません。
メンテ

Page:  [1] [2]

題名
名前  ("初心者"を含む名前は使用できません)
E-Mail
URL
パスワード 記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント
画像添付 (対応画像:JPEG/GIF/PNG [Max 500KB])

   クッキー保存

■ その他


Copyright(©)2004-2018 First home server construction. All Right Reserved.