• 締切済み

IIS+PHP スクリプトから仮想ディレクトリが参照できない

教えてください。 IISでWebサーバーを構築しています。ブラウザからは仮想ディレクトリを参照できるのですが、PHPのスクリプトから参照できません。 やりたいことはPHPのスクリプトの中でdir関数などを使用して、仮想ディレクトリの中のファイル一覧を取得することです。 どなたかわかる方、教えてください。

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

noname#30334
noname#30334
回答No.2

フォルダのショートカットで・・・と思ったのですが、やっぱりダメでした。 >スクリプト中からは実アドレスでアクセスしたくありません。 これは、「スクリプトに実アドレスを書きたくない」と解釈してもよろしいでしょうか? もし、それで良ければ・・・ ブラウザでアクセス出来ない階層で、なおかつネットワーク上に無い階層(例えば、C:\WINNTなど)に includeファイルを配置し、その中で仮想ディレクトリの実フォルダを定数で宣言し、 スクリプトでそのファイルをincludeすれば、一応のカプセル化は出来ると思います。 以上、ご参考まで。

noname#30334
noname#30334
回答No.1

仮想ディレクトリは、クライアントからのHTTPリクエストを処理するための擬似ディレクトリとお考え下さい。 PHPのスクリプトからアクセスする場合は、実際のフォルダ名でアクセスすれば良いです。 ですので、 dir("C:\sample_dir\php"); の形式でファイル一覧を取得し、 その中にあるファイルを使う場合に仮想ディレクトリを使います。 例) ・<IMG src="/仮想ディレクトリ名/画像ファイル.jpg"> ・<A href="/仮想ディレクトリ名/ファイル.html">仮想HTML</A>

zgozgo
質問者

お礼

回答ありがとうございます。 勘違いしていました。仮想ディレクトリがシンボリックリンクのように見えるのかと思っていました。 仮想ディレクトリがネットワーク上のフォルダなので、スクリプト中からは実アドレスでアクセスしたくありません。 Windowsでシンボリックリンクのようなものを作成することは出来ないのでしょうか?

関連するQ&A

  • IIS5の仮想ディレクトリが「ディレクトリの参照をチェック」しても表示されない

    Windows 2000 Serverに付属しているIISを利用し、WebサーバとFTPサーバを構築しようと思っています。 その際、Webサーバの方で、あるフォルダの下に仮想ディレクトリを作成しました。 例えば、サーバのローカルルートパスが C:\issfolder\ だとして、その下に「test」というフォルダを作成し、 C:\issfolder\test というフォルダがあるとします。 http://サーバアドレス/test/ で表示した場合、ISSの設定より各フォルダのプロパティにて"ディレクトリの参照"という項目にチェックを入れてあれば、「test」というフォルダの下に存在する通常のフォルダやファイルは表示されると思います。しかし、「test」のフォルダの下に仮想ディレクトリを作成した場合、そのディレクトリの参照の一覧に仮想ディレクトリのフォルダが表示されません。 どうやらその仮想ディレクトリの名前にあたるパスを直打ちすると表示がされるようなのですが、「test」フォルダ下には相変わらず表示される気配はないようです。 同様のことがIISのFTPサーバでの仮想ディレクトリにも言えるようでどうにかして仮想ディレクトリも上位ディレクトリの"ディレクトリの参照"で表示させることが出来ないか悩んでいます。 何か方法はございますでしょうか? よろしくお願いします。

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

  • IISの仮想ディレクトリ設定

    IISの仮想ディレクトリ設定について分かる方がいましたら教えてほしいんですけど、今ある物理ディレクトリをIISの仮想ディレクトリとしてマッピングさせて(物理ディレクトリにはイメージデータが入っています)ブラウザから直接イメージデータのファイル名を指定することで表示させるようにしたいのですが、IISでの仮想ディレクトリマッピングが分からなくて困っています。 そこで質問なのですが 1.そもそもIISでこのようなことは可能でしょうか? 2.できるのならばどのように設定すればよいでしょうか? 3.できないのならば何か方法はないでしょうか? 以上ですがよろしくお願いします

  • 仮想サーバーと仮想ディレクトリの違い

    よろしくお願いします。 IISでWebを立ち上げたいのですが、 仮想サーバーと仮想ディレクトリという言葉が出てきました。 厳密にはどのように違うのでしょうか? 仮想ディレクトリを持つサーバーが仮想サーバーということでしょうか?

  • IISの設定について

    IISより仮想ディレクトリを設定し、仮想ディレクトリ内で持っているHTMLファイルを参照しようと思うのですが、500エラーとなりうまくファイルを参照することができないため困っております。 仮想ディレクトリは、IISが立っているサーバとは別のサーバの共有フォルダを参照しております。 また、IISが立っているサーバ、参照先となる別のサーバは、WORKGROUPとなっております。 権限によるエラーでは?と思っているのですが、どなたか解決方法をご教授頂けないでしょうか。 よろしくお願い致します。 ブラウザでテストした時のURL http://reffolder/index.html ※reffolderは仮想ディレクトリとなります。

  • IISの仮想ディレクトリ作成がわかりません。教えて下さい。

    こんにちわ。 Web Developerにて作成したASP.NETアプリケーションをWEBサーバに配置して実行した所、以下のエラーが表示されました。 -----------------------------エラー内容始まり---------------- '/WEB' アプリケーションでサーバー エラーが発生しました。 -------------------------------------------------------------------------------- 構成にエラーがあります。 説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。 パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。 ソース エラー: 行 53: を有効にします。 行 54: --> 行 55: <authentication mode="Windows"/> 行 56: <!-- 行 57: <customErrors> セクションは、要求の実行中にハンドル ソース ファイル: D:\web\test\sample\web.config 行: 55 -------------------------------------------------------------------------------- バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.42; ASP.NET バージョン:2.0.50727.210 ---------------------------------エラー内容 終わり------------------------------- なので仮想ディレクトリを作り直してみましたが結果は同じです。 手順は以下の通りです。 1、スタートメニューより [インターネットインフォメーションサービス (IIS) マネージャ] を選択する 2、画面左側のツリーから「規定の Web サイト」を右クリックして、[新規作成] → [仮想ディレクトリ] を選択する 3、「仮想ディレクトリの作成ウィザード」でエイリアスを入力し、[次へ] をクリック。 4、仮想ディレクトリを指定する   3で入力したエイリアスの仮想ディレクトリの場所を指定します。 5、アクセス権を設定する (ASPなどのスクリプトを実行するにチェック) 6、ウィザードを完了する。 環境はWindows2000サーバー IIS5.0です。 SDKは入っておりません。。。 お気づきの点がありましたらご教示下さいませ。 宜しくお願い致します。

  • IIS仮想ディレクトリの設定について

    仮想ディレクトリを指定するとき、別のコンピュータのディレクトリを指定するとIIS管理画面に赤色でErrorマークが付きます。 ディレクトリ対象のフォルダーは当該サーバーから問題なく参照できるし、アクセス権限はeveryone,fullcontrolです。また、ディレクトリ設定時に認証用のID,PWは当該サーバのユーザのものですがAdministratorではありません。 Errorマークを消して正常にアクセスできるためのアドバイスお願いいたします。

  • 仮想ディレクトリの外のファイルを取得

    ASP(ActiveServerPages)、IIS V5.1で開発を行っています。 Cドライブに仮想ディレクトリを設定して http://www.~/~.asp のようにURLを発行しています。 今回、参照する画像数が多いため Dドライブを用意して、そこに保存した画像ファイルを http://www.~/~.asp のどこかのページに一覧表示させる事になりました。 仮想ディレクトリの外にファイルが存在するため 取得するためにはDドライブにも仮想ディレクトリを設定しないと 参照するのは無理でしょうか? 他に方法があればと思い質問させて頂きました。 ご教授をお願い致します。

  • IIS7のUIについて

    お世話になります。 現在、IIS7(Windows7Pro)にてサイトを構築しようとしております。 社内にIIS6(Server2003) でサイトを構築してあるので、その設定を参考にしようとしましたがUIが違う為、どこで設定すればよいのか分かりません。。 例えば、IIS6の場合、仮想ディレクトリのプロパティ画面に『スクリプトソース』や『読み取り』『書き込み』等のチェックボックスがありますが、IIS7ではこの辺の設定を行う為のUIが見当たりません。 どこで設定すればよいのでしょうか。 ご教授お願い致します。

  • IIS5.0のコマンドライン操作

    Windows2000Server上でIIS5.0を使用してサーバーを運用しているのですが最近まとめて仮想ディレクトリを作成したいと考えました。そこでコマンドラインやスクリプトから自動で仮想ディレクトリの作成等はできないものかと思っています。 IIS6.0からはvbsか何かでできるようですがIIS5.0ではそのような手段はないのでしょうか? 知ってる方お願いします。

専門家に質問してみよう