• 締切済み

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が動かないのかよくわかりません。 もし何か解決策に思い当たる節がございましたら、どうぞ御教授ください。 ※投稿カテゴリがわからず、先日「運用・管理」カテゴリに投稿させて頂いたのですが、数日経ってもご回答頂けなかったため一旦削除し、こちらのカテゴリに再投稿させて頂きました。御了承下さい。

みんなの回答

  • wcom
  • ベストアンサー率0% (0/0)
回答No.4

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

  • wcom
  • ベストアンサー率0% (0/0)
回答No.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です。

Kusuki
質問者

お礼

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

  • cbd_mei
  • ベストアンサー率55% (143/259)
回答No.2

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

Kusuki
質問者

お礼

ご回答ありがとうございました。 それが実は、ホームディレクトリ、仮想ディレクトリ共に実行アクセス権は「スクリプト及び実行可能ファイル」にしているのですが、何故かPHPのみ動かないのです(ASPは動いてますがこれはスクリプト権限だけで動くから関係なさそうですね;) アプリケーションのマッピングも何度か削除→追加を行っているのですが…。 まだ解決しておりませんので引き続き情報お待ちしています。(PHP側にエイリアス使用許可のような設定でもあるんでしょうか…??) もしどなたか「これは試した?」と言うものがありましたらゼヒお願いしますー。

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.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>

Kusuki
質問者

お礼

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

関連するQ&A