アプリケーションが現在実行している環境を設定するには、アプリケーションの変数(cfm | cfc)を維持する必要があります(環境はdevelopment | test | productionです)。ColdFusionでサーバ全体の変数を設定する方法
私はApplication.cfmでその値を読むことができるように、サーバー自体に環境変数を設定したいと思います。
これは可能ですか?
アプリケーションが現在実行している環境を設定するには、アプリケーションの変数(cfm | cfc)を維持する必要があります(環境はdevelopment | test | productionです)。ColdFusionでサーバ全体の変数を設定する方法
私はApplication.cfmでその値を読むことができるように、サーバー自体に環境変数を設定したいと思います。
これは可能ですか?
最も簡単なのは、(システムレベルで、またはColdFusionが実行されているユーザの)OS環境変数を設定し、サービスを再起動することです。この変数はCGIスコープで利用できます。
<cfset EnvName = CGI.COLDFUSION_ENVIRONMENT>
<cfoutput>#EnvName#</cfoutput>
Javaシステムのプロパティを使用することもできます。あなたのColdFusion Administratorで、「サーバーの設定/ JavaとJVM」に進んで、「JVM引数」に次のようなものを追加します。
-Dcom.mycompany.environment=development
あなたはその後、ColdFusionでその値を求めることができます:
<cfset System = CreateObject("java", "java.lang.System")>
<cfset EnvName = System.getProperty("com.mycompany.environment")>
<cfoutput>#EnvName#</cfoutput>
変更するたびにCFサービスを再起動する必要がありますが、値はかなり静的に見えるため、問題ではありません。質問を読んで
Apacheを使用するとできます。 Apacheの設定(httpd.confの)またはあなたのバーチャルホストでは、Envのモジュールは、あなたがこれを行うことができます読み込まれている場合:
のColdFusionから次にSetEnv APP_ENVIRONMENT DEVELOPMENT
:
#cgi['APP_ENVIRONMENT']#
あなたはCGIスコープに値をダンプした場合表示されませんが、出力するとそこに表示されます。
チップのおかげで。私はApacheを実行していないし、その種のことを行うiisの設定を見つけることができるようではありません:/ – noobsaibot
このポスト(クイックグーグル検索から)http://forums.iis.net/p/ 1146779/1858505.aspxでは、iis7で可能です。 – Ian
+1は、CGIスコープをダンプするときに表示されないというヒントです! – Seybsen
私が最初に考えたのはサーバー変数を設定することでした:
をしかし、問題はそれを設定する場合は、ありますか?
CF9には、この種のもののためのonServerStart()メソッドがあります。
しかし、あなたはあなたが持っているすべてのアプリケーションでそれを維持しなければならないでしょうか? SETENVと-Dオプションは*サーバ自体に設定されています*。どのように私はそれを別のものにしなければならないのか分かりません:) – noobsaibot
いいえ、SERVERスコープ付きの変数は、ColdFusionサーバー全体で使用できます。あなたはAPPLICATIONの範囲を考えているかもしれません。 これをCGI変数にすることは、アプリケーションサーバー間で動作するので便利です。 –
どうもありがとう。あなたはどうやってそのような分離をしていますか? – noobsaibot
うれしいことを聞いてうれしいです。 :)「分離」はどういう意味ですか? – Tomalak
dev/test/productionボックスでのみ実行されるべきコードチャンクの分離。 – noobsaibot