みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

締切り済みの質問

PHP linuxで動作しているプログラムをWindowsにて動作

ご質問させてください。

現在手がけているシステムが、
linux,apache,php
にて動作しています。

こちらを開発を容易にするために、
Windowsの開発環境にて動作させたいと考えています。

しかし、いたるところに
/usr/local/XXX~
のように絶対パスの記述がPHP上のソースにあり、
簡単には行かない状況です。

上記のような状況のソースがWindowsでも動くようにするために、
何か良いアドバイスをいただけませんでしょうか?

Windows上にLinuxの仮想空間を設け(colinuxなどで)

C:XXX
のディレクトリが
/usr/local/XXX
のディレクトリであるように見せかけられたりする設定があれば、
可能ではないかと考えております。

是非、良いお知恵を拝借できればと、
本当に困っております。

何卒、何卒、宜しく御願いいたします。

投稿日時 - 2009-08-14 22:41:10

QNo.5207716

すぐに回答ほしいです

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

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

回答(2)

ANo.2

そもそも
>/usr/local/XXX~
でどんな物を呼び出している?

投稿日時 - 2009-08-15 00:59:09

ANo.1

「容易にする」と有りますが、ソース内のいたるところに、絶対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用の二つを作っておいて、差し替えるとかね。
方法はいろいろあります。

投稿日時 - 2009-08-14 22:59:04

あなたにオススメの質問