- - PR -
Windowsからの移行について
1
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-18 16:36
現在Windows2000+IIS5.0で構築しているWebアプリケーションを
Linux+PHPに移行予定です。 ASP→PHPの移行は、asp2phpというツールで ある程度簡略化できそうなことがわかりました。 ASPでの処理で、COMコンポーネント(VB6.0製)を使っており、 それはどうやって移行するのか(できるのか)を調べていました。 Windows以外のOSの知識が皆無で、 「Windows、Linux、COMコンポーネント」等で検索してみましたが、 これ、というページが発見できませんでした。 検索キーワードや参考サイト等の情報をいただければ有難いです。 宜しくお願いします。 | ||||||||||||||||||||
|
投稿日時: 2004-11-18 17:40
興味深いテーマなのですが、まず無理です。 (ひょっとしたら、LinuxでCOMを動かすというプロジェクトがあるかもしれませんが、寡聞にして知りません) (WINEプロジェクト関連で、ちょっとあるみたいですが) Windows用のCOMサポート COMを使う目的が、Excel文書を〜処理する、WORD文書を〜処理する、という用件だとしたら、それぞれについて聞いた方がいい話を聞けると思います。 | ||||||||||||||||||||
|
投稿日時: 2004-11-18 18:00
ありがとうございます。
無理なら「無理」と書いてあるサイトを見つけたかったのです... Windows上のPHPなら、上記サイトにある記述でOKそうですが、 OSがLinuxなので、だめそう(と読めました)。
DBアクセス等の処理を隠蔽するため(?)に使っています。 そういうものに該当するのは、Linux用語ではなんというのでしょうか。 PHPでCOMに代わるような処理を作れればそれでいいのかとも思いますが、 PHPも知らないので、にっちもさっちもです。 たとえば、VB.netで作ったDLLとか、VC++でつくったDLLならそのままもっていけて、 PHPから使えたりするのでしょうか。 | ||||||||||||||||||||
|
投稿日時: 2004-11-19 16:14
だいたい、そんな所です。 (以前から、PHPのCOMサポート自体は知っていたので、COM自体をWINEで動せれば、そこからPHPでアクセスさせてしまえ!・・・という事をしている人がひょっとしたら、と思って上の回答でしたが、少し端折りすぎましたね(汗)) (WINEは、Linux上で、WindowsのAPIを使う目的のプロジェクトです)
ちょっと良く分りませんが、例えばPHPのマニュアルを見ると、データベースごとにアクセスする為の関数がありますが、「それを隠蔽してどの種類のデータベースにも同じ形でアクセス出来るようにする」という事でしょうか? そのようなモノは、Database Abstraction Layer(抽象データベースレイヤー?)と呼ばれているみたいですが、一般的な言い方なのかは分りません。 PHPの場合、ADODB(今探してみましたが、リンク切れか、ちょっと見つかりませんでした)PEAR(標準のPHPにはインストールされています)あたりが有名です。
無理です。 | ||||||||||||||||||||
|
投稿日時: 2004-11-22 09:25
COMを動かすAPIがあって、それをWINEで動かせればいけるのでは?ということでしょうか。 教えていただいたページを確認してみます。
データベースは決まっていて(今はMSSQLですが、移行後はMySQL)、ユーザIDとかパスワードとか、アクセス先のテーブル名だとかを自分の会社以外には知られないためにCOM化していました。あるメソッドを使うと、あるテーブルからレコードセットをとってくるなど。 他社さんに開発を頼むときなどに、DBアクセスの部分は自分の会社でCOM化し、○○メソッドを使ってください、のようにお願いしてました。COMだったら内部処理を知られずに、他社さんのローカル環境でもすぐ使えるので。
ありがたきお言葉。そのままもっていけないとわかれば、別方面から調べてみます。 とりあえず、WINEのページと、PHPのマニュアルを読んでみます。 | ||||||||||||||||||||
|
投稿日時: 2004-11-22 13:42
仕事の合間を縫って返答しているせいか、ちょーっと不適切な・・・というより、後から考えてみると、もっといい返答の仕方があったな、という部分もありましたがごめんなさい(汗)
WINEを、Linux上でWindowsのAPIを使うようにする、という話をしましたが、ほんとにそのままでは無理ですが、WINEを使う!という事なのでしたら、WINE上でそのまま動かせるんじゃないかな?と思います。 (というか、いっその事IISそのものをWINEで動かしちゃえるんじゃないか?という考えも(笑)) ただ、WINEについては(有名なので聞いた事がある、という程度で)あまり知らないので実際に業務に使っているか?等の情報をメーリングリストなどに投げてから検討してみるといいかと思います。 (日本のユーザ会とかの情報は、今ちょっと調べてみたところうまくひっかからなかったので、自分で調べて見て下さい^^;)
MSSQLとMySQLで使う場合のAPIを統一したい&パスワードなどを隠したいという所ですね? 例えば、ADOdb(見つかったのでリンク貼っておきます)で、
のような感じにして、$CLIENT_1_DBを使ってもらえばいい、というような感じではいけないのでしょうか? (つまり、データベースに接続した状態のオブジェクトを使ってもらえば、という感じで) (もちろん、他社さんに頼むのもPHPコードの場合でないと駄目ですが) |
1