ColdFusion とWeb サーバー(IIS/Apache)とを接続する
ColdFusion 2018 以降は、インストールウィザードでColdFusion とWeb サーバー(IIS/Apache)とを接続する手順がスキップされるようになりました。そのためインストールた直後は、内部Webサーバー(開発およびAdministrator 設定用)を利用してのみ使用が可能です。従来のIIS/Apache とColdFusion を連携させるためには、後から「Web サーバー設定ツール」を使って登録する必要があります。「Web サーバー設定ツール」はGUI 画面かコマンドラインかのどちらからも登録や削除を行うことができます。
IIS への接続例を紹介します。
https://helpx.adobe.com/jp/coldfusion/configuring-administering/web-server-management.html
Windows: GUIでIISとの接続設定を行う場合
a. Webサーバ設定ツールを実行します:
[cf_root]\cfusion\runtime\bin\wsconfig.exe
b. 設定済みWeb サーバーが一覧で表示されます。こちらで既存のColdFusion とIIS との接続設定が確認できます。
c. [追加] ボタンを押すと、「Web サーバー設定の追加」ダイヤログが表示されます。
d. 「AppServer のプロパティ」はそのまま、「Web サーバーのプロパティ」でWeb サーバーを「InternetInformation Server(IIS)」を選択します。
e. IIS に登録されている 特定のWeb サイトにのみコネクタを指定する場合は、「IISWebサイト」の一覧から選択します。[All] はすべてのWeb サイトに対するグローバルな一つの設定を行います。[All-Individually] は、一度に登録されているWeb サイトに個々に対する設定を行います(上記の画像の例では、登録されているWeb サイト4 つそれぞれにコネクタを登録します)。
f. 必要に応じて[詳細] ボタンを押し、「コネクタのロギング」や「接続プール設定(ColdFusionとIIS間の接続コネクタの数などを設定)」を行います(テスト・開発段階ではデフォルトにします)]
g. [OK] ボタンを押すと「Web サーバーの再起動」の確認ダイヤログが表示されます。[はい] を選ぶと、コネクタが追加されます。
Windows:コマンドでIISとの接続設定を行う場合
a. コマンドプロンプトを管理者権限で開き、wsconfig.exeの場所に移動します:
cd [cf_root]\cfusion\runtime\bin\
b. IIS に対する接続コネクタを登録します
例1:すべてのWeb サイト(All)に対して設定を行う場合
(-v を付けると詳細が出力されます)
wsconfig.exe -ws iis -site All -v
例2:Default Web Site に対して設定を行う場合
wsconfig.exe -ws iis -site "Default Web Site" -v
(出力例)
command line: -ws iis -site Default Web Site -v
Created file C:\ColdFusion2021\config\wsconfig\1\isapi_redirect.dll
Created file C:\ColdFusion2021\config\wsconfig\1\README
Wrote file C:\ColdFusion2021\config\wsconfig\wsconfig.properties
Stopped "World Wide Web Publishing Service" service
Started "World Wide Web Publishing Service" service
The Internet Information Server (IIS) connector was installed to "Default Web Site"
c. 接続設定を確認します。
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 forum
3 cfcafeteria
Linux:GUIでApacheとの接続設定を行う場合
a. GUI上で端末コンソールを開き、rootまたはsudoにてWebサーバ設定ツールを実行します。
[cf_root]\cfusion\runtime\bin\wsconfig
b. 設定済みWebサーバーが一覧で表示されます。こちらで既存のColdFusionとApacheとの接続設定が確認できます。
c. [追加] ボタンを押すと、「Webサーバー設定の追加」ダイヤログが表示されます。
d. 「AppServerのプロパティ」はそのまま、「Webサーバー」のプロパティで「Apache」を選択します。
e. 「設定ディレクトリ」には、Apacheのhttpd.confファイルが置かれているフォルダを指定します。
「Apache 仮想ホスト」は特定の仮想ホストのみに接続の設定を行いたい場合に選択します。
f. [詳細] ボタンを押すと、詳細設定ダイヤログが開きます。「Apache の設定」で、「サーバーバイナリ(Apache のバイナリファイル)」を、「サーバーのコントロールスクリプトのディレクトリとファイル名(apachectl)」のファイル名とパスを指定します。
g. [OK] ボタンを押すと「Webサーバーの再起動」の確認ダイヤログが表示されます。[はい] を選ぶと、コネクタが追加されます。
Windows: GUIでIISとの接続設定を行う場合
a. 端末コンソール上で、wsconfig の場所に移動します
cd [cf_root]\cfusion\runtime\bin\
b. root またはsudo にてApache に対する接続コネクタを登録します
例:./wsconfig -ws Apache -dir /opt/apache2/conf -bin /usr/local/apache2/bin/httpd
-script /usr/local/apache2/bin/apachectl -v(-v を付けると詳細が出力されます)
例:./wsconfig -ws Apache -dir /etc/httpd/conf -bin /usr/sbin/httpd -vhost vhost1.samuraiz.co.jp
-script /usr/sbin/apachectl
c. 接続設定を確認します・
./wsconfig -list
(出力例)Apache : /etc/httpd/conf (All)
設定されたコネクタファイルは、[cf_root]/config/wsconfig フォルダ内に登録順に「1」「2」「3」と作成されていきます。それぞれのフォルダには、コネクタファイルやコネクタの設定ファイルなどが置かれています。
また、コネクタの登録や更新・削除を行った際には「backup」フォルダに設定ファイルのバックアップが保存されるため、コネクタに手動で設定の変更等を行っている場合は、更新や再登録の際に初期化された設定を「backup」フォルダに置かれた旧設定を見ながら再設定などを行うことができます。
Apache と接続設定を行ってもHTTP503 エラーが発生する
CF 2021 / 2018 Upd 8 / 2016 Upd14 以降、ColdFusion と Web サーバーとの接続コネクタのセキュリティ強化(コネクタがローカルからの接続のみを受け付けるように制限)されました。それによって、特にApache と接続を行っている場合に、Web サーバーコネクタを登録してcfmページをリクエストすると、HTTP 503 エラーが発生する場合があります。これは、コネクタとColdFusion(Tomcat) との接続において、IPv4 とIPv6 での接続の相違が生じているためです。
エラーが発生した場合は、下記のいずれかの方法を行ってください(@かAのどちらかだけで 503エラーを回避できる模様ですが、片方のやり方でうまくいかない場合は、もう一方の方法をお試しください)
(1) server.xml の AJP コネクタの設定に address="::1" を追加する
[cf_root]/cfusion/runtime/conf/ 内のserver.xml ファイルをテキストエディタ(メモ帳)等で開き、AJP のConnector の設定に address="::1" を追加します。
<Connector ... port=" 接続時の使用ポート(例8020)" protocol="AJP/1.3" ... secret="(ランダム値)"
tomcatAuthentication="false" address="::1" />
address を追加した場合は、変更を反映するために、
ColdFusionを再起動してください。
(2)workers.properties の worker.cfusion.host=localhost を 127.0.0.1 に変更する
workers.properties ファイルは、Apache のconf フォルダと同じ場所に作成されています。
workers.properties をテキストエディタ(メモ帳)等で開き、worker.cfusion.host の値を変更します。
(変更前)worker.cfusion.host=localhost
↓
(変更後)worker.cfusion.host=127.0.0.1
worker.cfusion.host の変更を反映するために、Apache の再起動を行ってください。