- 締切済み
PHP linuxで動作しているプログラムをWindowsにて動作
ご質問させてください。 現在手がけているシステムが、 linux,apache,php にて動作しています。 こちらを開発を容易にするために、 Windowsの開発環境にて動作させたいと考えています。 しかし、いたるところに /usr/local/XXX~ のように絶対パスの記述がPHP上のソースにあり、 簡単には行かない状況です。 上記のような状況のソースがWindowsでも動くようにするために、 何か良いアドバイスをいただけませんでしょうか? Windows上にLinuxの仮想空間を設け(colinuxなどで) C:XXX のディレクトリが /usr/local/XXX のディレクトリであるように見せかけられたりする設定があれば、 可能ではないかと考えております。 是非、良いお知恵を拝借できればと、 本当に困っております。 何卒、何卒、宜しく御願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom233
- ベストアンサー率17% (61/352)
そもそも >/usr/local/XXX~ でどんな物を呼び出している?
- inu2
- ベストアンサー率33% (1229/3720)
「容易にする」と有りますが、ソース内のいたるところに、絶対PATHで書いているような低レベルのソースコードをwin上で動かせたとしても、 同じように。 C:\プロジェクト名\ソース\・・ と、win上での絶対PATHを書かれてしまうだけ。 また、winのphpとLinux等のPHPでは多少方言があり、正しく動かない場合があります。 win上のバーチャルマシンを用意してその中に本番環境と同じLinuxを入れて、その中で動かすほうが良いかと思います。 って、それ以前に、絶対PATHをどこかに統一して記述できるようにしておくのが先かと思います。 >C:XXX >のディレクトリが >/usr/local/XXX >のディレクトリであるように見せかけられたりする設定があれば、 >可能ではないかと考えております。 こんな都合の良いものは存在しません。 なぜならば、そのような開発手法をする人が居ないからです。 どぉしてもLinux <=> win というように、開発はwinで、テストや本番がLinuxでというのであれば 例えば、 class Define{ const PROJECT_ROOT = '/usr/local/XXX'; const DOCUMENT_ROOT = '/home/user'; } とか用意しておいて。 include Define::PROJECT_ROOT . 'foo.php'; とか書くようにしておく。 もしくは、 -------config.ini project.root.directory = "/usr/local" document.root.directory = "/home/user" ------- などのような設定ファイルに、pathなどの情報を全て集約させておいて、 win用とlinux用の二つを作っておいて、差し替えるとかね。 方法はいろいろあります。