複数のアプリケーションをホストする Coldfusion サーバーがあり、すべてが独自のサブフォルダーにあります。何かのようなもの:
- /webroot フォルダー/applicationA
- /webroot フォルダー/applicationB
さらに、開発サーバーには、開発者ごとに特定のアプリケーションのコピーがあり、それぞれが Subversion の作業コピーです。
- /webrootfolder/applicationA_dev1
- /webrootfolder/applicationA_dev2
- /webrootfolder/applicationA_dev3
Coldfusion 7 を実行しているので (アップグレードには大きな抵抗があります)、パッケージで CFC を使用したいので行き詰っています。さまざまな問題、試みられた解決策、およびこれらの問題も次のとおりです。
- 相対コンポーネント名の使用は、パッケージが 1 つしかない場合にのみ機能します。これにより、1 つのフォルダー内でコンポーネントがごちゃごちゃになります。
- サブパッケージの使用は、親パッケージのコンポーネントを参照しない限り機能します。これは、コンポーネントを cfargument 型として拡張、インスタンス化、または使用するときに簡単に発生するようです。
- ルートから始まる完全な CFC パスを使用しても、開発者ごとに複数のコピーを使用することはできません。**変数で動的パスを使用することは、今のところ私の解決策でした... extendsまたはcfargumentタイプでは機能しないことに気付くまで... **サーバーマッピングの使用は、開発中は機能しません。デベロッパー コピーごとのエイリアス。コードがフォルダーに依存しないことを期待しています。** CF8+ ではなく CF7 であるため、アプリケーション固有のマッピング (Application.cfc で定義) を使用しても機能しません。
- 必要な CFC のローカル ダミー コピーを作成し、実際の CFC の内容を (相対パス "../../" で) cfinclude することが、私の以前の解決策でした。それは機能しますが、これらのクローンがいたるところにあるのはとても面倒です. ** ごく最近、このソリューションが常に機能するとは限らないことを発見しました。Coldfusion は、さまざまな CFC に同名の関数が含まれているようで混乱しています。
- 各開発者のマシンで開発用 Coldfusion サーバーを使用して、アプリケーション パスを常に
/webrootfolder/applicationA
(Mark A Kruger による提案) にします。** ここでの主な問題は、これをインストールできるようにコンピューター チームを説得することです。それには長い時間がかかるかもしれません。** ネットワーク構成に他の問題があるかもしれません (おそらく DB へのアクセスを許可するかどうかはわかりません)。これもネットワーク チームを通過し、許可されている場合でもしばらく時間がかかります。
アプリケーション/フォルダーごとに 1 つの Web サイト - ルートの変更
IIS 6 での Web サイト/アプリケーションの構成方法を時間をかけて調査しました。いくつかの調査の結果、Unix/Apache で慣れていたのと同じようにバインディングを作成できることがわかりました。現時点では、すべてのアプリケーションは Web ルートの独自のサブフォルダーにあります。たとえば、"domain.com/appA" が "/webrootfolder/applicationA" フォルダーを指すように、エイリアスが構成されます。しかし、これは依然として多数のサブパスを持つ単一の IIS Web サイトです。したがって、Coldfusion ルート (CFC およびインクルード用) は、その 1 つの Web サイトのルート (/webrootfolder) に基づいています。
簡単なテストを行ったところ、ポート 8080 (デフォルトの 80 ではなく) にバインドされた 2 つ目の IIS Web サイトをサーバー上に作成することができました。私はこれを /webrootfolder/applicationA/cfm (実際にはアプリのルート) に直接指摘しました。これにより、Coldfusion はそのフォルダーをルートとして認識し、「オブジェクト」CFC をインスタンス化して として検索し/webrootfolder/applicationA/cfm/Object.cfc
ます。
これはまさに私が以前の仕事で持っていたものであり、非常にうまく機能しました。とはいえ、小さな会社だったので、このソリューションには問題があるのではないかと心配しています。主に: この Web サイトに人々を誘導するにはどうすればよいですか? ポート バインドの使用は、あまりユーザー フレンドリーではありません (ユーザーは技術者ではありません)。アプリケーションごとに特定のドメインを用意するのはいいことのように思えますが、特に HTTPS が関係している場合 (そう聞いたことがあります)、コストがかかる可能性があります。サブドメインは別の解決策かもしれませんが、同様の問題があるようです.
そう...
私は何かを逃したことがありますか?「厄介な」ソリューションの1つにこだわっていますか?
Coldfusion 管理パネルと IIS 構成にアクセスできますが、ソリューションがサーバー上の他のアプリケーションのパスまたは URL に影響を与える場合、アクセスが制限される可能性が高くなります。