- PR -

Apacheでバーチャルアカウントの実現

1
投稿者投稿内容
純一郎
常連さん
会議室デビュー日: 2004/04/05
投稿数: 22
投稿日時: 2004-04-05 01:02
いつもお世話になっています。

Apacheで一つのサーバーにVirtualHostを複数作成し、
各VirtualHostでユーザのWeb領域を提供したいと考えています。
できればユーザをvpopmailのようにバーチャルで作成したいのですが、
Apacheでバーチャルアカウントを作成することは可能なのでしょうか?

宜しくお願いします。




たて
常連さん
会議室デビュー日: 2003/12/18
投稿数: 39
お住まい・勤務地: 沖縄
投稿日時: 2004-04-05 11:33
おはようございます。

これじゃダメですかね?

http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08a.html
純一郎
常連さん
会議室デビュー日: 2004/04/05
投稿数: 22
投稿日時: 2004-04-05 20:53
たてさん

ご返答ありがとうございます。
教えていただいたアドレスでVirtualHostの設定の方法は分かりました。
同様にユーザアカウントもバーチャルにすることはできないのでしょうか?
現状ではユーザのWEB領域を作成しようとすると、
/etc/passwdに登録する必要があるかと思いますが、
同一のマシンで複数のVirtualHostを作成すると、
アカウントの名前が重複してしまうと思うのですが・・・。
たて
常連さん
会議室デビュー日: 2003/12/18
投稿数: 39
お住まい・勤務地: 沖縄
投稿日時: 2004-04-05 22:36
純一郎様

すいません。ユーザーアカウントをバーチャルにすると言う意味がわかりません。ごめんないさい。
ウチの場合ですとバーチャルホストが8つ有ります。
aaa.bbb.com
ccc.ddd.com
eee.fff.com


の様な感じで。それぞれのユーザーは
user
useruser
user1


みたいな感じでテキトーに作ってあります。
あとはVirtualHostディレクティブで、それぞれのDocumentRootを指定してあるだけです。
vpopmaiが解らないので、思いっきりはずしてたらゴメンナサイ。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2004-04-06 01:04
引用:

純一郎さんの書き込み (2004-04-05 20:53) より:

教えていただいたアドレスでVirtualHostの設定の方法は分かりました。
同様にユーザアカウントもバーチャルにすることはできないのでしょうか?
現状ではユーザのWEB領域を作成しようとすると、
/etc/passwdに登録する必要があるかと思いますが、
同一のマシンで複数のVirtualHostを作成すると、
アカウントの名前が重複してしまうと思うのですが・・・。



Apacheが使うユーザディレクトリは UserDir ディレクティブで制御して
いるだけで、Linuxのユーザアカウントとは無関係です。
(補足:ホームディレクトリからの相対パスを使うときだけは、
ユーザアカウント情報を参照します。マニュアルとソースコードで確認。)

また、UserDirディレクティブを VirtualHost コンテキスト内で使用すれば、
ユーザーディレクティブが重複することもありません。

Apacheのマニュアルの該当部分はこちら:
Apache module mod_userdir (Apache 1.3)
mod_userdir - Apache HTTP サーバ (Apache 2.0)

mod_userdirの最新版ソースコードはこちら:
apache-1.3/src/modules/standard/mod_userdir.c - view - 1.55
httpd-2.0/modules/mappers/mod_userdir.c - view - 1.53

[ メッセージ編集済み 編集者: ちいにぃ 編集日時 2004-04-06 04:03 ]
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-04-06 16:10
どもも。がると申します。
んと、結論からいうと、私が知っている限りでは「難しい」かなぁ、と。

SMTPでのvpopmailの場合、
・外部からのデータ(この場合Mail)を内部(HDD)に蓄える:qmail
・内部に蓄えられたデータを外部(POP認証してきたユーザ)に
 吐き出す:vpopmail
が、いずれもきちんとプログラムとして提供されているために、
UNIXユーザアカウントを「もたない」データのやり取りが出来ます。

Apacheの場合、
・内部に蓄えられたデータを外部に吐き出す:Apache
はよいのですが、肝心の
・外部(Webサイトのオーナ)からのデータ(HTMLとか)を
 内部(HDD)に蓄える
部分を、通常はFTPに頼っていて。で、FTPの場合は必ず
UNIXユーザアカウントが必要になるです。

したがって、結局はUNIXユーザアカウントが必須になり、
UNIXユーザ名は必ず「ユニークな(重複しない)」状態であることが
求められてしまいます。

ただ、表に見えるURL上のユーザ名を「同一にする」ことは
十分に可能です。

もうちょい説明が必要なようでしたら、また声をかけてください。

以下余談:
モジュール作って色々細工すると意外とこーゆーニーズってある
のかなぁ?とか思ってみたり :-P
設計はそんなに難しくないし。
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2004-04-06 16:51
こんにちは。

FTPでバーチャルユーザを作りたいのであればPureFTPdとかがあるようです。

私も一度試してみたいなーと思いつつ未だに手を出してないので、どこまで
出来るのか等詳しくは解りませんが。

要望に見合うようなら使ってみてはいかがでしょうか。
#その時はついでに使用方法のレポートとか作ってもらえるとうれしいかも。
純一郎
常連さん
会議室デビュー日: 2004/04/05
投稿数: 22
投稿日時: 2004-04-06 21:27
お返事ありがとうございます。

大変参考になりました。
Apache自身はユーザが/etc/passwdに必ず登録されている必要が
あるわけではないのですね。(suEXECとか使う場合はどうなんだろう・・・?)
綾瀬さんに教えていただいたPureFTPdの方も
少し調べてみたいと思います。

みなさんありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)