サーバーサイドJavaScript(Windows、Sqlite用)
CGJSフレームワーク インストール手順

  サーバーサイドのJavaScriptを主としたWeb開発フレームワークで、OSがWindows、
データベースに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.Sqlite3の準備
既にsqlite3が使用できる場合は、エクスプローラで sqlite3.dll ファイルを検索します。
ライブラリが存在しない場合はsqlite3をインストールします。
Webで "windows sqlite3 インストール" 等のキーワードで検索して、インストールしてください。
4.CGJSファイルの展開・配置
Windows、Sqlite の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_sqlite_101.zipファイルをダウンロードし、以下のコマンドで %WORK_DIR%\cgjs
ディレクトリに展開します。フォルダー・ファイルの構成は下図を参照してください。
  C:\> PowerShell Expand-Archive -Path %WORK_DIR%\windows_sqlite_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=/var/www/log/cgjs_cgi.log
 ### CGJS Back Endのjsファイル、コンパイル後のjoファイルのディレクトリ
 MODULE_DIR=/var/www/cgjs
 ### Web Clientのデバッガーとの接続ポート番号
 DEBUG_PORT=8777

 ### 脆弱性対応のトークン認証・リフレッシュのパラメータ。なしの場合は対応なし
 AUTHRIZATION_NAME=CGJS
 ### Web画面放置のタイムアウト(秒)
 TIME_INTERVAL=1800
 ### ユーザの認証プログラム
 CGI_PROGRAMS=check_login.bat

 ### Sqlite関連 データベース名、ライブラリー、接続パラメータ
 VAR="DB_SQLITE":"sqlite"
 VAR="LIB_SQLITE":"C:/sqlite3/sqlite3.dll"
 VAR="CONNECT_SQLITE":"C:/Users/hiros/cgjs.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) デモ用アプリに必要なテーブル、レコードの作成
CGJSフレームワークで使用するデータベースに、ダウンロードファイルにあるSQLをもとに。デモ用アプリに必要な
テーブル、レコードを作成します。
■ Sqlite用の各sqlファイルの内容を確認する。
■ sqlite3 でcreate_table.sqlファイルのSQLを実行して、必要なテーブルの定義をする。
■ sqlite3 で以下の4ファイルのSQLを実行して、必要なレコードをINSERTする。
  insert_City.sql、insert_Column.sql、insert_Population.sql、insert_Prefecture.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が
デバッガーと連携することを確認してください。