ColdFusion とWeb サーバー(IIS/Apache)とを接続する
ColdFusion 2018 より、インストール時にColdFusion とWeb サーバー(IIS/Apache)とを接続する手順がスキップされるようになりました。そのためColdFusion2018 のインストール直後は同梱のWebサーバー(開発およびAdministrator 設定用)を利用してのみ接続が可能です。従来のIIS/Apache とColdFusion を連携させるためには、後から「Web サーバー設定ツール」を使って登録する必要があります。「Web サーバー設定ツール」はGUI 画面かコマンドラインかのどちらからも登録や削除を行うことができます。
最初に
ColdFusion 2018でWebサーバー接続を設定する前に、最新のUpdateを適用してください。ColdFusionのUpdateには既知の不具合や確認されたセキュリティ問題の修正のほか、内部エンジンのTomcatのバージョンアップ、そして、Webサーバーコネクタのバージョンアップも含まれます。
記事作成時点(2019/11/27)の最新Updateは6ですが、この6でもWebサーバーコネクタのバージョンアップが行われているため、Update 6 適用前に先にWebサーバーコネクタを登録すると、後からUpdate6をあてた後にコネクタの再登録(一旦設定を消去して、再度登録し直す)作業が必要となり、二度手間になります。
IISとColdFusion 2018とを接続する
【Windows: GUI でIIS との接続設定を行う場合】
- Web サーバ設定ツールを実行します:
[cf2018_root]\cfusion\runtime\bin\wsconfig.exe
- 設定済みWeb サーバーが一覧で表示されます。こちらで既存のColdFusion とIIS との接続設定が
確認できます
- [追加...] ボタンを押すと「Web サーバー設定の追加」ダイヤログが表示されます。「AppServer のプロパティ」はそのまま、「Web サーバーのプロパティ」でWeb サーバーを「Internet
Information Server(IIS)」を選択していることを確認します
- IIS に登録されている 特定のWeb サイトにのみコネクタを指定する場合は、「IIS Web サイト」の
一覧から選択します
[All] はIISに登録されているすべてのWebサイトに対する一つのグローバルなコネクタを登録します
[All-Individually] は、IISに登録されているWebサイトが複数ある場合、Webサイトごとにコネクタを個々に登録します(上記の例では、登録されているWebサイト3つ(81, Default Web Site, sub1)それぞれにコネクタを登録します)
[Default Web Site]、[81]、[sub1]は、IISに登録されている1つのWebサイトに対してコネクタを登録します
- デバッグを目的としたコネクタを設定する場合は、[詳細...] ボタンを押し、「コネクタの詳細ロギングを有効にする」や「接続プール設定(ColdFusion と
IIS 間の接続コネクタの数などを設定)」を行います(基本はデフォルトの設定となります)
[OK] ボタンを押すと、元のダイヤログ画面に戻ります
- [OK] ボタンを押すと、「Web サーバーの再起動」の確認ダイヤログが表示されます。[はい] を選ぶと、対象のIIS Webサイトに対するコネクタ設定が追加されます
- ダイヤログが閉じ、初期の画面に戻ります。「設定済みのWebサーバー」の一覧に追加したWebサーバーの情報が表示されます
- [終了]ボタンを押して、「Webサーバー設定」ツールを閉じます
【Windows: コマンドでIIS との接続設定を行う場合】
- コマンドプロンプトを管理者権限で開きます
- wsconfig.exe が置かれている場所に移動します:
- cd [cf2018_root]\cfusion\runtime\bin\
- IIS に対する接続コネクタを登録します
- 接続設定を確認します
- wsconfig.exe -list
(出力例)
There are 1 configured sites and 3 unconfigured sites.
Configured Site Number and Site Name:
1 Default Web Site
Unconfigured Site Number and Site Name:
0 All
2 81
3 sub1
ApacheとColdFusion2018とを接続する
【Linux: GUIでApacheとの接続設定を行う場合】
- Linux の GUI 上で端末コンソールを開きます
- root またはsudo にてWeb サーバ設定ツールを実行します
- [cf2018_root]\cfusion\runtime\bin\wsconfig
- 設定済みWeb サーバーが一覧で表示されます。こちらで既存のColdFusion とApache との接続設定が行われている場合は確認ができます
- [追加...] ボタンを押すと、「Web サーバー設定の追加」ダイヤログが表示されます。「AppServer のプロパティ」はそのまま、「Web サーバーのプロパティ」でWeb サーバーを「Apache」を選択します
- 「Webサーバーのプロパティ」の設定を行います
- 「設定ディレクトリ」には、Apache のhttpd.conf ファイルが置かれているフォルダを指定します
- 「Apache仮想ホスト」には、特定の仮想ホストのみに接続の設定を行いたい場合に選択します
[All] はVirtualhostの登録に関係なく、Apache全体に対して一つのグローバルなコネクタを登録します
[All-Individually] は、Apacheで設定されているサイト・Virtualhostそれぞれにコネクタを個々に登録します(上記の例では、登録されているサイト(cflinux.samuraiz.co.jp)と2つのVirtualhost(vhost1.samuraiz.co.jp, vhost2.samuraiz.co.jp)それぞれにコネクタを登録します)
[cflinux.samuraiz.co.jp]、[vhost1.samuraiz.co.jp]、[vhost2.samuraiz.co.jp]は、Apacheで設定されているサイト・Virtualhostのどれか1つに対してコネクタを登録します
- [詳細...] ボタンを押すと、詳細設定ダイヤログが開きます
- OSによってインストールされたデフォルト以外のApacheと接続する際は、「Apache の設定」で、「サーバーバイナリ(Apache のバイナリファイル)」と、「サーバーのコントロールスクリプトのディレクトリと
ファイル名(apachectl)」のファイル名とパスを指定します
- デバッグを目的としたコネクタを設定する場合は、「コネクタの詳細ロギングを有効にする」や「接続プール設定(接続がアイドル状態になった場合のタイムアウト)」などの設定を行います(基本はデフォルトの設定となります)
- 【重要】ColdFusion 2018 Update 6現在 「Performance Monitoring Toolsetのプロパティ」の「ハートビート間隔(秒)」を”0”に変更します
- ColdFusion 2018 と Apache との組み合わせで、本機能によってApacheがクラッシュする問題が報告されています。修正が行われるまでの間は0に設定してください
- 既に設定済みのコネクタに対しては、手動で設定ファイルを修正します。詳しくは、下記のFAQをご確認ください
- [OK] ボタンを押すと、「Web サーバーの再起動」の確認ダイヤログが表示されます。[はい] を選ぶと、対象のApache サイト・Virtualhostに対するコネクタ設定が追加されます
- ダイヤログが閉じ、初期の画面に戻ります。「設定済みのWebサーバー」の一覧に追加したWebサーバーの情報が表示されます
- [終了]ボタンを押して、「Webサーバー設定」ツールを閉じます
【Linux: コマンドでApache との接続設定を行う場合】
- 端末コンソール上で、wsconfig の場所に移動します
- cd [cf2018_root]\cfusion\runtime\bin\
- (任意) Apache を停止します
- apachectl stop
- コマンドの最後にApacheが再起動されますが、Apacheが動作中の場合に再起動に失敗する場合があるため、可能であればApacheを止めてからコネクタの設定を行います
- root またはsudo にて wsconfig をApache に対する接続パラメーター付きで実行してコネクタを登録します
- 設定例
./wsconfig -ws Apache -bin /opt/apache2/bin/httpd -script /usr/sbin/apachectl -dir /etc/httpd/conf -v
- 出力例
Apache バイナリ /usr/sbin/httpd を使用しています
Server version: Apache/2.4.6 (Red Hat Enterprise Linux)
Apache を特定できないので Apache は DSO サポート用に設定されていると想定しています。
Apache 設定ファイル /etc/httpd/conf/httpd.conf を解析しています
Apache コントロールスクリプト /usr/sbin/apachectl を使用しています
chmod 777 /opt/coldfusion2018/config/wsconfig/1 を実行しています
Set permission to 777 on /opt/coldfusion2018/config/wsconfig/1
chmod +x /etc/httpd/conf/mod_jk.so を実行しています
Set permission to execute on /etc/httpd/conf/mod_jk.so
ファイル /etc/httpd/conf/mod_jk.so を作成しました
ファイル /etc/httpd/conf/httpd.conf に書き込みました
ColdFusion の設定が Apache 設定ファイル /etc/httpd/conf/httpd.conf に追加されました
ファイル /opt/coldfusion2018/config/wsconfig/1/README を作成しました
ファイル /opt/coldfusion2018/config/wsconfig/wsconfig.properties に書き込みました
/usr/sbin/apachectl restart を実行しています
Apache サーバーを再起動しました
The Apache connector was installed to /etc/httpd/conf
- 接続設定を確認します
- ./wsconfig -list
- (出力例)
Apache : /etc/httpd/conf (All)
- 【重要】ColdFusion 2018 Update 6現在 「Performance Monitoring Toolset」の「ハートビート間隔(秒)」に不具合があり Apacheのクラッシュを招くため、対象の設定ファイルの値を”0”に変更します
- 修正が行われるまでの間は手動で設定ファイルを修正します。詳しくは、下記のFAQの「コマンドモードでコネクタを登録する場合、既に登録済みのコネクタの設定を変更する場合」の手順に沿って、対象ファイルを修正してください
- Apacheを再起動します