はじめての自宅サーバ構築 - 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/~ユーザ名/
もし出来るのであれば、上記の方法を兼ねて教えて頂ければ助かります。

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

■ コンテンツ関連情報

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

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

すみません、質問の意味いまひとつ分からないのですが、
僕もそのようなドメインネームに対するユーザ登録の割付をした経験がないので、わかりません。
 Re: バーチャルドメインの/~ユーザー名/について ( No.6 )
日時: 2006/12/08 18:11
名前: DL

お返事頂きまして、ありがとうございます。


>>新規ユーザ追加するたびに選択出来るように効率のよい方法はご存知ではないでしょうか?
>>例1:exampleドメインに対して新規ユーザ追加と同時に home/*/下層にpubli_example_htmlを自動作成
>>例2:tanakaokドメインに対して新規ユーザ追加と同時に home/*/下層にpublic_tanakaok_htmlを自動作成


もう少し詳しく記入しましたので、ご確認願います。

例ですが

tanakaok.comに対して /~ユーザ名/を追加する際
home/*/下層に”publi_tanakaok_html”を自動で作成するようにする事は可能でしょうか?

example.comに対して/~ユーザ名/を追加する場合は
home/*/より下層に " public_example_html"を自動で作成

つまり、それぞれ指定したドメインに対して/~ユーザ/を追加した際
home/*/にあります "publi_*"ディレクトリをドメインごとに判別して自動で作成することは出来るでしょうか?という意味です。


設定としては
example.com に対して /home/*/にある”public_example_html”
tanakaok.comに対して /home/*/にある”public_tanakaok_html”
sub.tanakaok.comに対して /home/***/にあるpublic_tanakaok_html/sub
ですね。

上記のこれらを ~ユーザ追加時に ドメインをtanakaok.comにした場合に
例えば tanakaok.comだったら 自動で home/*/にある public_tanakaok_htmlを自動作成

このようにする方法はないのでしょうか?


ドメインを複数にわけなければ下記の方法で public_htmlディレクトリが自動作成されますが。
mkdir /etc/skel/public_html

もしご存知でしたらよろしくお願い致します。








 Re: バーチャルドメインの/~ユーザー名/について ( No.7 )
日時: 2006/12/09 09:14
名前: DL

こんにちは、DLです。
先程共通のディレクトリで設定してみたのですが、エラーがでて起動出来ませんでした。

<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>

エラー内容は下記の通りです。

# /etc/rc.d/init.d/httpd restart
httpd を停止中:                      [失敗]
httpd を起動中: Syntax error on line 1009 of /etc/httpd/conf/httpd.conf:
Invalid command '\xe3\x80\x80<IfModule', perhaps mis-spelled or defined by a module not included in the server configuration


どうやら下記の設定を追記すると上記のエラーがでてしまうようです。
下記の設定をなくしてシンプルにすると正常に起動できます。
 <IfModule mod_userdir.c>
  UserDir public_html
 </IfModule>


上記の/~ユーザ名/で正常起動出来る記載方法になるとどのような方法が御座いますでしょうか?
よろしくお願い致します。


 Re: バーチャルドメインの/~ユーザー名/について ( No.8 )
日時: 2006/12/09 09:18
名前: ZERO

>httpd を起動中: Syntax error on line 1009 of /etc/httpd/conf/httpd.conf:
>Invalid command '\xe3\x80\x80<IfModule', perhaps mis-spelled or defined by a module not included in the server configuration


1009行目に全角スペースが混入している為です。
 Re: バーチャルドメインの/~ユーザー名/について ( No.9 )
日時: 2006/12/09 09:24
名前: DL

ZERO様

初めまして、こんにちは。
おかげさまで無事に起動する事が出来ました。
どうもありがとうございました。

もし下記の方法もご存知でしたら、ご教授いただけると大変有難いです。

>>新規ユーザ追加するたびに選択出来るように効率のよい方法はご存知ではないでしょうか?
>>例1:exampleドメインに対して新規ユーザ追加と同時に home/*/下層にpubli_example_htmlを自動作成
>>例2:tanakaokドメインに対して新規ユーザ追加と同時に home/*/下層にpublic_tanakaok_htmlを自動作成


もう少し詳しく記入しましたので、ご確認願います。

例ですが

tanakaok.comに対して /~ユーザ名/を追加する際
home/*/下層に”publi_tanakaok_html”を自動で作成するようにする事は可能でしょうか?

example.comに対して/~ユーザ名/を追加する場合は
home/*/より下層に " public_example_html"を自動で作成

つまり、それぞれ指定したドメインに対して/~ユーザ/を追加した際
home/*/にあります "publi_*"ディレクトリをドメインごとに判別して自動で作成することは出来るでしょうか?という意味です。


設定としては
example.com に対して /home/*/にある”public_example_html”
tanakaok.comに対して /home/*/にある”public_tanakaok_html”
sub.tanakaok.comに対して /home/***/にあるpublic_tanakaok_html/sub
ですね。

上記のこれらを ~ユーザ追加時に ドメインをtanakaok.comにした場合に
例えば tanakaok.comだったら 自動で home/*/にある public_tanakaok_htmlを自動作成

このようにする方法はないのでしょうか?


ドメインを複数にわけなければ下記の方法で public_htmlディレクトリが自動作成されますが。
mkdir /etc/skel/public_html

もしご存知でしたらよろしくお願い致します。

■ その他

ページ先頭へ


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