• ベストアンサー

仮想ドライブにあるソースをrequireするには?

WindowsでのPHPプログラミングに関する質問です。 コマンドプロンプトで、substを利用して仮想フォルダを作成しました。 ところが、phpプログラムからrequire_once()を使って その仮想フォルダ内のソースを読み込もうとするとエラーとなります。 どうすればこの問題が解決できるでしょうか? require_once()の処理では、substによる仮想フォルダは無視されるのでしょう? よろしくお願いします! 【具体的な内容(一部伏字です)】 ・仮想フォルダ > C:\WINDOWS\system32>subst > H:\: => C:\usr\local\phpdata > C:\WINDOWS\system32>tree /F h:\ > フォルダ パスの一覧: ボリューム IBM_PRELOAD > ボリューム シリアル番号は XXXX-XXXX です > H:\ > └─project1 > xxxx.php ※cat H:\phpdata\project1\xxxx.php ではちゃんとxxxx.phpの内容が表示されます ・require部分のソース require_once('H:/project1/xxxx.php'); ※require_once('C:/usr/local/phpdata/project1/xxxx.php'); なら正常にソースが読み込まれます ・エラーログ PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'h:/project1/xxxx.php' (include_path='.;C:\PHP\pear') in C:\.....\yyyy.php on line 11

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

phpはコマンドライン実行じゃなくて、ローカルサーバー経由なのですよね? 仮想フォルダを設定したら、ローカルサーバーを再起動しないと、サーバーアプリからは見えませんよ。 それは、やっていると言うことであれば、WindowsもXPやNT以上のversionでは、サーバーアプリ(サービス起動アプリ)については、アクセス権というものを設定しないと、ハードディスク内全部見える訳ではないはずです。

elmsley
質問者

お礼

ありがとうございます。 確かに、コマンドライン実行では仮想ドライブにアクセスできますが、 ローカルサーバ(Apache2.2.4 windowsXP)経由で問題が発生しています。 再起動も効果がありませんでしたし、 アクセス権も確認してみましたが問題が無さそうでした……。 う~む、もやもやします。

その他の回答 (1)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

その前に。 実際に作り終わったシステムをどこで動かすおつもりでしょう? 自分のパソコン内で動けばOKなのですか? それともwindowsベースでapache+PHPのシステムを一般公開するのでしょうか? 余計なお世話かもしれませんが、苦労して作ったものをレンタルサーバーなどにアップしたら全く動きませんよ

elmsley
質問者

補足

すみません、説明不足でした。 自前の、windowsベースのapache+PHPなサーバで動かします。 ある事情から、サーバでは特定のPHPソースのみHドライブに置いています。 (サーバマシンでは、仮想でないHドライブが存在します) 開発はサーバと別のマシンでしているのですが、 開発マシンにはHドライブが存在しないので、 Substコマンドで作成すれば良いかな、と思った次第です。 つまり、アップすれば動くけれどローカルでは動かない、という状況です。

関連するQ&A