こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

IIS仮想ディレクトリでのみPHPが動かないです…

Windows2000ServerのIIS4.0+PHP4.4.4を動かそうとしています。
PHPのインストールを行いphpinfoが動作するのは確認できたのですが、IISで仮想ディレクトリを設定し、そのエイリアスでアクセスすると何故か404エラーが返ってきてしまいます。

「規定のWebサイト」に設定したルートフォルダにtest\aaaのフォルダがあるとして、
http://www.hoge.jp/test/aaa/phpinfo.php
とルートから実フォルダ名で呼び出した場合はphpが動作するのに、
「~aaa」の名でフォルダにtest\aaaを設定した仮想ディレクトリを呼び出そうと
http://www.hoge.jp/~aaa/phpinfo.php
をアドレスに指定すると、HTTP404エラーが出てしまうのです。

同じ階層に置いたHTMLファイルはどちらの方法でも表示されます。また該当フォルダのIUSER権限はフルコントロール許可しています。仮想ディレクトリのアプリケーション設定で拡張子.phpの設定は何度も追加・削除を試しているし、都度IISの再起動も行っているのですが…。
何故普通に指定すると大丈夫で、新規追加した仮想ディレクトリではPHPが動かないのかよくわかりません。
もし何か解決策に思い当たる節がございましたら、どうぞ御教授ください。

※投稿カテゴリがわからず、先日「運用・管理」カテゴリに投稿させて頂いたのですが、数日経ってもご回答頂けなかったため一旦削除し、こちらのカテゴリに再投稿させて頂きました。御了承下さい。

投稿日時 - 2007-06-11 17:56:54

QNo.3075996

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

追加します。php.ini内の
doc_root = "C:/Inetpub/wwwroot"
いろいろなページでIISの場合はこのように設定するとなってますが、
この設定を無効にしてました。(行頭に;)

投稿日時 - 2008-06-13 15:14:36

ANo.3

約1年前の質問ですが、この度、同様の現象に遭遇しました。
ネットでそれらしい解決策は見つかりませんでしたので、いろいろとやってみたところ、php.iniの
include_path = ".;c:/php/includes;c:/php/pear"

include_path = ".;c:\php\includes;c:\php\pear"
に変更(/→\)したら動くようになりました。
環境はWindows2003Server IIS6 PHP5.2.6です。

投稿日時 - 2008-06-10 20:23:16

お礼

長らくお礼が申せず申し訳ありませんでした。
体験談をありがとうございます。
php.iniでWindows用は記述が違うとかはありそうですね…!
現場を離れてしまったため、実際に試す事が敵わないのが残念です。
wcomさん、ありがとうございました。

投稿日時 - 2009-03-03 21:55:22

ANo.2

規定のWebサイト の プロパティの「ホームディレクトリ」の「実行アクセス権」
はおそらく「スクリプト及び実行可能ファイル」になっていると思いますが
作成された仮想ディレクトリの実行アクセス権は「スクリプトのみ」になっていないでしょうか。
その場合は「スクリプト及び実行可能ファイル」に変更すれば動くと思います。

投稿日時 - 2007-06-12 17:20:22

お礼

ご回答ありがとうございました。
それが実は、ホームディレクトリ、仮想ディレクトリ共に実行アクセス権は「スクリプト及び実行可能ファイル」にしているのですが、何故かPHPのみ動かないのです(ASPは動いてますがこれはスクリプト権限だけで動くから関係なさそうですね;) アプリケーションのマッピングも何度か削除→追加を行っているのですが…。

まだ解決しておりませんので引き続き情報お待ちしています。(PHP側にエイリアス使用許可のような設定でもあるんでしょうか…??)
もしどなたか「これは試した?」と言うものがありましたらゼヒお願いしますー。

投稿日時 - 2007-06-15 10:56:01

ANo.1

IISの設定をご確認ください。
IISについてはさっぱりわかりませんのでApacheで説明します。

httpd.confの以下の部分を有効にします。
ただし、セキュリティ的に弱くなります。(有効なユーザ名がバレます)

<IfModule mod_userdir.c>
UserDir public_html
</IfModule>
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

投稿日時 - 2007-06-11 18:05:00

お礼

ユーザディレクトリの権限を各動作許すように指定する…と言う事でしょうか? ApacheはXAMPPでPHPごとまとめてインストールして使ったことならあるのですが、あまり理解できてなかったりします…
ご回答ありがとうございました。

投稿日時 - 2007-06-15 09:34:37

あなたにオススメの質問