サーバーサイドJavaScript(Windows、複数DB用)
CGJSフレームワーク インストール手順
サーバーサイドのJavaScriptを主としたWeb開発フレームワークで、OSがWindows、
データベースにOracle、Sqlserver、DB2、Postgresql、Sqliteが使用できる、CGJSフレームワークのインストール方法を説明します。
1.前提条件
■ Windowsが動作する
■ Webサーバー(apache2)、及び、cgiが動作する
■ 必要とするデータベースのサーバーにネットワークで接続できる
以下の説明で、Webサーバーの html、cgi-bin 等のファイル配置先ディレクトリはサンプルとして記述しています。
インストールする時は、サーバーの実態に合わせて実際のディレクトリ、ファイル名に変更して操作してください。
また、ファイルを操作するワークディレクトリを%WORK_DIR%として説明しています。
環境変数 WORK_DIR に実際のディレクトリを設定してください。
2.ファイルの準備
CGJSフレームワークの動作をデモアプリで確認するために jQuery を使用します。
これらのjsファイルがない場合は、Webからダウンロードして %WORK_DIR%ディレクトリにコピーしてください。
(1) jQuery の準備
Webで "jQuery download" 等のキーワードで検索し、jquery-3.x.x.min.js をダウンロードして、
$WORK_DIRディレクトリにコピーします。
<参考URL> https://jquery.com/download/
3.データベースのC用ドライバを準備
既に必要とするデータベースにClientとして接続できる場合は、エクスプローラで データベースのドライバ(.dll)
ファイルを検索します。
ライブラリが存在しない場合は、「インストール ---> OS:Windows」の個別データベースのページを参考にして、
WebでClient、ドライバのインストール方法を検索し、インストールしてください。
4.CGJSファイルの展開・配置
Windows、複数DB のCGJS zipファイルをダウンロードして展開後、ディレクトリに配置するまでの手順を説明します。
(1) 環境変数の準備
まず、環境変数 WORK_DIR が設定されていることを確認します。
次に、以下のコマンドで環境変数にWebサーバー、CGJS等の実際のディレクトリ、ファイル名を設定します。
コマンド |
備考 |
export CGJS_LOG_DIR=/var/www/log |
CGJSのログ出力用のディレクトリ |
export CGJS_APL_DIR=/var/www/cgjs |
JavaScriptモジュール用のディレクトリ |
export WEB_HTML_DIR=/var/www/html |
Webサーバー HTMLのディレクトリ |
export WEB_BIN_DIR=/usr/lib/cgi-bin |
Webサーバー cgi-binのディレクトリ |
export JQUERY_FILE=jquery-3.6.0.min.js |
jQueryのバージョンによるファイル名 |
(2) zipファイルのダウンロード・展開、BATファイルの実行
「ダウンロード」ページでからwindows_multi_101.zipファイルをダウンロードし、以下のコマンドで %WORK_DIR%\cgjs
ディレクトリに展開します。フォルダー・ファイルの構成は下図を参照してください。
C:\> PowerShell Expand-Archive -Path %WORK_DIR%\windows_multi_101.zip -DestinationPath %WORK_DIR% -Force
展開後、ファイル群を該当フォルダーに配置するBATファイルを実行しますが、(3)に処理概要を説明しています。
実行前にBATファイル install_windows.bat の内容を確認してください。
C:\> %WORK_DIR%\cgjs\install_windows.bat
(3) install_windows.bat の処理概要
以下のBATファイルで、最初から38行目まではファイルや環境変数のチェックうを行っています。
41から43行目までは、CGJSのディレクトリの存在をチェックし、なければ作成しています。
46行目以降の処理がCGJSのファイルを配置するメインの処理です。
46行目は、CGIと関連するファイル群をWebサーバーのcgi-binディレクトリに配置する処理です。
49行目は、HTMLと関連するファイル群をWebサーバーのhtmlディレクトリに配置する処理です。
52から63行目までは、デモアプリ用に準備したjsファイルをWebサーバーのHTMLディレクトリに配置する処理です。
66、53行目は、デモアプリのBack EndのJavaScritファイルをCGJSのモジュール・ディレクトリに配置する処理です。
■ install_windows.bat
@echo off
REM 環境変数をチェック
REM WebサーバーのHTMLディレクトリ
if "%WEB_HTML_DIR%" == "" (
echo WebサーバーのHTMLディレクトリ環境変数 WEB_HTML_DIR が設定されていません。
exit /b
)
REM Webサーバーのcgi-binディレクトリ
if "%WEB_BIN_DIR%" == "" (
echo Webサーバーのcgi-binディレクトリ環境変数 WEB_BIN_DIR が設定されていません。
exit /b
)
REM jQueryバージョン・ファイル名
if "%JQUERY_FILE%" == "" (
echo jQueryファイル名環境変数 JQUERY_FILE が設定されていません。
exit /b
)
REM CGJSのログディレクトリ
if "%CGJS_LOG_DIR%" == "" (
echo CGJSのログディレクトリ環境変数 CGJS_LOG_DIR が設定されていません。
exit /b
)
REM デモアプリのモジュール配置ディレクトリ
if "%CGJS_APL_DIR%" == "" (
echo デモアプリのモジュール配置ディレクトリ環境変数 CGJS_APL_DIR が設定されていません。
exit /b
)
REM jquery.jsファイルの存在チェック
if not exist "%WORK_DIR%\%JQUERY_FILE%" (
echo ファイル %JQUERY_FILE% が%WORK_DIR%ディレクトリにありません。
exit /b
)
REM CGJSログディレクトリのチェック
if not exist "%CGJS_LOG_DIR%" ( mkdir "%CGJS_LOG_DIR%" )
REM CGJSアプリディレクトリのチェック
if not exist "%CGJS_APL_DIR%" ( mkdir "%CGJS_APL_DIR%" )
REM cgi-binディレクトリへのコピー
xcopy "%WORK_DIR%\cgjs\cgi-bin\" "%WEB_BIN_DIR%" /e /c /s /Y >nul
REM デモ用HTMLファイルのコピー
xcopy "%WORK_DIR%\cgjs\demo_html\" "%WEB_HTML_DIR%\demo_html\" /e /c /s /Y >nul
REM 準備したjquery.js ファイルを該当ディレクトリにコピー
copy "%WORK_DIR%\%JQUERY_FILE%" "%WEB_HTML_DIR%\demo_html\javascript\jquery.min.js" /Y >nul
REM デモ用のJavaScriptファイルをコピー
xcopy "%WORK_DIR%\cgjs\demo_module\" "%CGJS_APL_DIR%\demo_module\" /e /c /s /Y >nul
exit /b
(4) Back End(%WEB_BIN_DIR%\CGJS.config)の設定
「リファレンス --> CGJSの設定」ページを参照して、%WEB_BIN_DIR%\CGJS.config ファイルの設定してください。
以下のファイルのサンプルのKEY=VALUE形式で、設定するVALUEの部分(赤字で表示)を確認・変更してください。
使用しないデータベースの設定行は削除してください。
■ CGJS.config ファイルのサンプル
### cgjsのログファイル
LOGFILE=C:\cgjs\log\cgjs_cgi.log
### CGJS Back Endのjsファイル、コンパイル後のjoファイルのディレクトリ
MODULE_DIR=C:\cgjs\module
### Web Clientのデバッガーとの接続ポート番号
DEBUG_PORT=8777
### 脆弱性対応のトークン認証・リフレッシュのパラメータ。なしの場合は対応なし
TOKEN_KEY=CGJS
### Web画面放置のタイムアウト(秒)
TIME_INTERVAL=1800
### ユーザの認証プログラム
CGI_PROGRAMS=check_login.bat
### 環境変数の定義
ENV="TNS_ADMIN=C:\oracle_client_19_9"
ENV="NLS_LANG=Japanese_Japan.UTF8"
ENV="DB2INSTANCE=db2inst1"
ENV="LANG=ja.JP.utf-8"
ENV="DB2CODEPAGE=1208"
### データベース関連 データベース名、ライブラリー、接続パラメータ
### DB2
VAR="DB_DB2":"db2"
VAR="LIB_DB2":"C:/DB2/bin/db2app64.dll"
VAR="CONNECT_DB2":"odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=127.0.0.1;PORT=50000;DATABASE=DB;PROTOCOL=TCPIP;UID=test;PWD=pwd;"
### oracle
VAR="DB_ORACLE":"oracle"
VAR="LIB_ORACLE":"C:/oracle_client_19_9/oci.dll"
VAR="CONNECT_ORACLE":"db=ORA;user=test;pwd=pwd"
### PostgreSql
VAR="DB_PGSQL":"postgresql"
VAR="LIB_PGSQL":"C:/pg_cgjs/libpq.dll"
VAR="CONNECT_PGSQL":"host=127.0.0.1;port=5432;db=db;user=test;pwd=pwd"
### Sqlite
VAR="DB_SQLITE":"sqlite"
VAR="LIB_SQLITE":"C:/sqlite3/sqlite3.dll"
VAR="CONNECT_SQLITE":"C:/Users/hiros/cgjs.db"
### SqlServer
VAR="DB_SQLSVR":"sqlserver"
VAR="LIB_SQLSVR":"C:/Windows/System32/sqlsrv32.dll"
VAR="CONNECT_SQLSVR":"Server={tcp:127.0.0.1,1433};AutoTranslate=no;UID=TEST;PWD=pwd;Database=DB"
(5) Front部($WEB_HTML_DIR/demo_html/javascript/cgjs.js)の設定
cgjs.js ファイルの先頭部分で cgi-bin ディレクトリ、実行するCGIプログラムを指定しています。
インストール後のデフォルトでは、実行するCGIは本番用の /cgi-bin/CGJS.exe になっています。
デバッグ用CGIにする場合は debugCGJS.exe に変更してください。
ただし、cgjs.js ファイルは下図の赤字部分以外は変更しないでください。
ユーザーが新たにアプリケーションを作成する場合、この cgjs.js ファイルを他サイトのjavascriptディレクトリに
コピーして使用してください。
■ cgjs.js ファイルの先頭部分
var CGJS = {
// CGJSのCGIのURL /cgi-bin/の部分は必要に応じて書き換える
url_base: ($(location).attr('protocol') + '//' + $(location).attr('host') + '/cgi-bin/'),
default_cgjs_cgi: 'CGJS.exe',
・・・・・・・・・・・・・・・・・・・・・・・
5.CGJS デモ用のデータベース作成
(1) デモ用アプリに必要なテーブル、レコードの作成
必要とするデータベースごとに、「インストール --> OS:CentOs」のページを参照し、デモ用アプリに必要なテーブル、
レコードを作成してください。
データベースにsqliteを使用する場合、sqliteのテーブル作成はcreate_sqlite_table.sqlファイルのSQLを使用してください。
6.デモアプリの実行・インストール確認
(1) デモ用アプリの動作確認
URLに http://<Web_Server>/demo_html/login.html を入力してデモアプリのログイン画面を表示します。
「デモアプリ --> はじめに」ページを参照して、デモアプリでデータベースの参照・更新を行って、CGJSが正しく
インストールされたことを確認してください。
デモアプリが正しく動作しない場合は、以下の調査を行ってください。
■ AppArmor、Selinux等のセキュリテイソフトが動作している場合、permissiveモード、もしくは無効化にする。
デモアプリが正常に動作することを確認後、permissiveモードのログファイルからProfile、ポリシーの
ファイルを作成し、セキュリテイ・ソフトを有効化してください。
■ Webサーバーでファイル、ディレクトリのアクセス権のエラー等が発生していないか、エラーログを調査する。
■ cgi-bin/CGJS.configに設定したCGJSのログファイルで、エラーが発生していないか調査する。
■ ブラウザーのデバッガーを表示して操作し、エラーが発生していないか調査する。
(2) Client PCのデバッガーとの連携確認
「デバッガー」ページを参照してCGJSデバッガーをインストールします。
cgjs.js ファイルの接続するCGIを debugCGJS.cgi に変更します。
URLに http:///demo_html/login.html を入力してデモアプリのログイン画面を表示します。
「デモアプリ --> はじめに」ページを参照して、デモアプリでデータベースの参照・更新を行って、CGJSが
デバッガーと連携することを確認してください。