ApacheとPHPの質問です。例えば、

http://d.hatena.ne.jp/hoge/a.php
http://d.hatena.ne.jp/test/a.php

URLで、ユーザー名を使用してディレクトリを割り当てていることがあるかと思いますが、具体的にはどのようにして、a.php を実行できるようにしているのでしょうか? httpd.conf の "UserDir"を使うのはわかるのですが、ご教授ください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/10/17 15:50:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント27pt

質問の意図が少し分かりにくいのですが、~(チルダ) がない事が問題でしょうか?


すべてのサーバーがこういう形かどうかは分かりませんが、自分であればこのように設定します。

AddHandler php-script .php
UserDir public_html
RewriteEngine On
RewriteRule ^/~([^/]+)(/.*)? /$1$2 [PT,L]

テストはしていないので、若干ミスがあるかもしれません。

http://httpd.apache.org/docs/2.2/ja/mod/mod_userdir.html

http://www.net-newbie.com/trans/mod_rewrite.html

id:disca

ありがとうございます大変参考になります。

チルダが不要になる件は、以前の質問で解決しました。http://q.hatena.ne.jp/1143614138

あと…もうひとつ質問がありまして、

UserDirを使わない方法はありますでしょうか?

つまり、Symlinkを作成せずとも、仮想ディレクトリのリストを用意しておけばApache上で、仮想ディレクトリを作成することが可能でしょうか?

2006/10/10 18:43:17
id:junono No.2

回答回数695ベストアンサー獲得回数28

ポイント27pt

勘違いしていたらすみません。

httpd.confの設定を

http://wiz.syscon.co.jp/Lnxapache2.html

な設定を施すことにより 普通はユーザのディレクトリにあるPHPファイルも実行されるはずです。

http://www.miloweb.net/pastbbs/0002/457.html

にも同じような内容が載ってます。

単純に~なしのアドレスでユーザディレクトリを表示して、PHPを動作させたいなら

http://blogs.dion.ne.jp/kimiwo/archives/1215637.html

http://www.h7.dion.ne.jp/~pamo/takam/howto/mklinux/apache.html

にあるような設定をすれば、http://d.hatena.ne.jp/test/a.phpでPHPが実行可能になると思います。

id:disca

ありがとうございます、質問についてですが、

個々の仮想ディレクトリにおいて、同じPHP(a.php)を実行することができるかどうかについてです。

hoge/a.php

test/a.php (URL上ではa.phpは右記のように配置されているが、ローカルのパスでは/usr/local/bin/にa.phpが置かれている。などについてです。

2006/10/10 18:47:28
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント26pt

まえの回答にミスがあったので修正します。

AddHandler php-script .php
UserDir public_html
RewriteEngine On
RewriteRule ^/([^/]+)(/.*)? /~$1$2 [PT,L]

すいませんが以前の質問の回答にあるリンク先が変わってしまっているようなのでどのように解決されたのか、現状どのように設定しているかが分かりません。


一応こうではないかという案だけ提案させていただきます。

RewriteEngine On
RewriteRule ^/hoge/(.*) /usr/local/bin/$1 [L]
RewriteRule ^/test/(.*) /usr/local/bin/$1 [L]

とすれば /hoge/a.php と /test/a.php は同じファイルが実行されます。


余談ですが、/usr/local/bin はユーザー用のコマンドが入る場所なので、公開用には /usr/local/www 等のディレクトリを作った方がいいと思います。

http://q.hatena.ne.jp/answer

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません