インストール
プロバイダー、サーバー管理者に確認
- CGI プログラムファイルをアップロードするパス(例:/home/httpd/html/cgi-bin/)
- CGI プログラムの呼び出し方(例:/cgi-bin/xxxx.cgi)
- CGI関係のファイルやディレクトリに設定するパーミッション
- CGIを置くディレクトリ以下の画像ファイル、HTMLファイルがWeb上(ブラウザで)参照、表示できるか?
- CGIを設置する方法については各プロバイダーが説明のホームページを用意していると思いますのでそちらを参照下さい。
- ホームページのトップページindex.htmlが存在するディレクトリまでのパス(例:/home/httpd/html)
- ホームページの呼び出し方URL(例:https://www.xxxx.co.jp/)
- 確認ができたら状況カレンダー自動作成の作業用ディレクトリをどのディレクトリの下に作成するか、また対象は幾つあるか、その対象を管理するためのID(登録名)をどのように付けるかを検討します。
データのセキュリティについて(流出、改ざん、削除されるのを防ぐために)
あなたが状況カレンダー自動作成のデータをWebページ上から編集できるということは他の人も同様のことができるということを意味します。
その違いは操作するためのID、パスワードを知っているかいないかの違いだけです。
しかし、ちょっとハッキングの知識のある悪意の第三者にかかるとそんなバリアは意図も簡単に破ってしまうかもしれません。データファイルではなくHTMLファイルでも書き換えられる可能性は同じなのですが・・・・
そこでより安全なデータ管理をするための方策を記述しますので可能な限り対策を講じられることをお勧めします。(全てを講じたとしても完全ということではありません)
- 設定プログラムの記述でデータファイルのファイル名を任意のファイル名に変更する。
- CGIから書き込み可を必要とするファイルのパーミッションは当マニュアルでは777としています、777はどのサーバーの環境でも問題なく使えるパーミッションですがセキュリティーレベルは一番甘い設定です。
もしご自分のサーバー環境で707などもっとセキュリティーレベルを上げても書き込み可能ならそちらに変更してください。
- 編集画面を呼び出すプログラムの名称を判読されにくいファイル名に変更する。
- 編集管理者のID、パスワードは誰にでも推察できる簡単なものにしない。
- 編集管理者のID、パスワードは定期的に変更する。
- データファイルを保存するディレクトリをウェブ上から呼び出せないディレクトリの下に設定する。
CGIプログラムをダウンロードします
- 専用のダウンロードページを呼び出します。
- ダウンロードしたファイルは ZIP 形式で圧縮されたファイルです解凍ソフトで解凍して下さい。
解凍されたテキストファイルの改行コードは Unix(LF)になっています。
- 最低限以下の設定、変更を行ってください。
内容の変更はUnix(LF)の改行コードを認識するテキストエディターで開いて編集してください。
対象 | 行目 | 変更点(アップロード前) | パーミッション設定(アップロード後) |
ディレクトリ calendar |
|
| 一般サーバ 書込&実行 例:755 or 705 or 777 | suEXECサーバ CGIラッパーサーバ書込&実行 例:701 or 700 or 705 |
CGIファイル setup.cgi | 1 | #!/usr/bin/perl ご使用のサーバー環境に合わせて変更 | 一般サーバ 書込&実行 例:755 Or 705 | suEXECサーバ CGIラッパーサーバ書込&実行 例:701 Or 700 |
CGIファイル setup.cgi の1行目の perl のパスを変更します。
最初は #!/usr/bin/perl となっています。もしインストールするサーバーの perl のパスが同じであれば変更する必要はありません。
- ディレクトリ calendar 以下を CGIプログラムが実行できるディレクトリにまとめてアップロードします。
(ディレクトリ calendar も含めてアップロードしてください)
ディレクトリを calendar 以外にしたい場合はディレクトリ calendar をリネームしてからアップロードします。
- readme.html は必要ありませんのでサーバーから削除しておいてください。
- ディレクトリ calendar 、CGIファイル setup.cgi のパーミッションを上記の表を参考に設定してください。
- setup.cgi を実行させて指示に従いインストールを進めてください。(例:https://www.xxx.co.jp/cgi-bin/calendar/setup.cgi)
- インストールをやり直す場合は setup.cgi を再実行させます。
- インストールがに成功したら setup.cgi は安全のため削除しておいてください。
- インストールに必要な設定はすべて自動で行ってくれますが、サーバーの環境によっては自動インストールがうまくできない場合があります、そのような時は手動で設定を行いインストールを行ってください。
- ファイル名の拡張子が .cgi のCGIファイルはCGIプログラムです。
- ファイルのパーミッションが 644 とあるファイルは読み込み権限があればいいので特に変更する必要はないはずです。
- アップロードはテキストファイルは ASCII モードで画像ファイルは BINARY モードでアップロードしてください。
( Ftp ソフトの設定によっては自動的にアップロードしてくれますが注意が必要です)
- ※インストール時に漢字変換モジュールとして Unicode::Japanese を使用する設定でインストールし実行時に「Unicode::Japanese が組み込めません!」のメッセージが表示される場合は以下の原因が考えられます。
ディレクトリ Unicode_m の下の Japanese.pm はファイル後半にバイナリコードを含むため、Ftp ソフトの自動の ASCII モードで転送するとファイルが壊れる可能性があるためです。そのため Unicode_m の下の Japanese.pm をサーバーのUnicode の下にFTPソフトの自動ではなく手動のBINARY モードでアップロードしてお試しください。
- テキストファイルのアップロード後の改行コードは Unix(LF)でアップロードしてください。
(ダウンロードして解凍した状態では Unix=LF で保存されています。 Ftp ソフトによっては自動的に変換してアップロードしてくれますが注意が必要です)
- ディレクトリ _help の下にある複数のファイルはフォームメールプロのマニュアルファイルです。
ファイルのパーミッションは読み込み権限があればいいので特に変更する必要はないはずです。
また、_help の下にある index.html をブラウザで開くとオフラインのマニュアルとして使用できます。
管理者について
- 状況カレンダー自動作成の管理者には3タイプの管理者が存在します。
- 全体(全て)の状況を管理するスーパバイザーは状況の追加や削除を行う権限があります、また残り2つのタイプの管理者が行えるそれぞれの状況に対しての権限も持っています。
- 残り2つのタイプの管理者はそれぞれの状況1つに対しての操作を行える権限も持っていてマスター管理者と通常の管理者です。
マスター管理者と通常の管理者はそれぞれの画面からお互いにリンクが張られていて交互に切り替えができます。
- それぞれの管理者の画面を直接呼び出す場合はブラウザのアドレス入力欄に以下のURLを入力します。
スーパバイザー https://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi?super
マスター管理者 https://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi?master
通常管理者 https://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi
予約フォームマスター管理者 https://www.xxxx.co.jp/cgi-bin/calendar/formmail_edit.cgi?master
予約フォーム通常管理者 https://www.xxxx.co.jp/cgi-bin/calendar/formmail_edit.cgi
https://www.xxxx.co.jpの部分とCGI呼び出しのパスはあなたのサーバーのURLに置き換えてください。
あなたがアップロードした場所と calendar_edit.cgi、formmail_edit.cgi の名称を変更した場合は違う指定になります。
CGIが動作するか調べましょう
- ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
(例:https://www.xxxx.co.jp/cgi-bin/calendar/setup.cgi)
- 実行の結果以下の画面が表示されればOKです。
- CGIサーバーとWebサーバーが違うサーバーの場合はCGIが取得した環境変数、ドキュメントルート(ホームページのトップページ index.html が存在するディレクトリのパス)とホームページURLがWebサーバーのものと違う場合があります。
その場合はドキュメントルートをWebサーバーのものを指定するように変更してください。
- ホームページのドメイン名を指定します。(最後の / は不要です)
- sendmail の送信テストの宛先メールアドレスを指定します。
- sendmail の引数を指定します。(必要なら変更します、-f を付けてもメールアドレスの指定は不要です)
- sendmailが使えないサーバーではSMTPで送信することができます。SMTPを使う場合は指定します。
SMTPサーバー名を指定します。
送信を行なう際のユーザ認証が POP before SMTP の場合は POP3サーバー名、ID、パスワードを指定します。
メッセージの終端コードが LF.LF の場合はチェックを入れます。LF LF の場合はチェックを外します。
- メール配信処理でPC内のアドレスリストファイルの指定をできるようにするかどうかを設定します。
- CGIが作成する作業用ディレクトリに設定するパーミッションを指定します。CGIから書込み可の指定をします。
- CGIファイル名をご自分用に変更したい場合は変更後のテキストを指定します。CGIファイル名の calendar の部分と formmail が指定したテキストに置き換わります。
calendar_display.cgi、calendar_fmdisplay.cgi、formmail_pro.cgi は変更されません。変更したい場合は手動で変更し、設定ファイル calendar_set.pl の中の calendar_display.cgi、calendar_fmdisplay.cgi、formmail_pro.cgi が記述されている部分も手動で変更後のCGI名に変更します。
CGIファイル名を変更することはセキュリティ上で有効になります。
CGIファイル名を変更した場合は以下のマニュアル上でCGIファイル名を記述した箇所で変更したファイル名に読み替えてお読み下さい。
- HTTP_REFERER チェック機能の設定をします。HTTP_REFERER チェック機能とはスパム送信を行おうと送信フォームがあるサーバー以外から表示させた送信フォームで送信されるのを防ぐ機能です。HTTP_REFERER 情報を基にスパムかどうかの判定を行います
但し、HTTP_REFERER 情報が取得できない環境がありますのでこの機能を使うと通常の利用者が送信を行えない場合があります。
HTTP_REFERER チェック機能を有効にする場合はこの点を注意してください。
- フォームで送信させる最大のバイト数を指定します。大量のデータを送られるのを未然に防ぐ事ができます。
- 管理者宛メールアドレスは複数指定できますが、その最大に指定できるアドレスを指定します。(スパム送信の予防)
- スマートフォンからの予約状況編集するときに「携帯電話フォーマットで表示」するか「PCフォーマットで表示」するかを選択します。
- 使用する漢字変換モジュールを選択します。推奨されているもの以外を使用したい場合は変更します。
- 状況データ一括アップロード機能を使用するかしないかを選択します。使用するを選択すると管理者メニューに表示されるようになります。
- CGIプログラムのパスがうまく設定できているかをテストします。(CGIパスとはインストールしようとしているサーバー上のどこからでも呼び出せるCGIのパスのことで、この setup.cgi が存在する場所を指定します。)
下欄に既に テスト結果:CGIは正常に実行されました。が表示されていれば設定を変える必要はありません。
もし、テスト結果:CGIは正常に実行されました。が表示されていなければCGIプログラムのパスがうまく設定できていませんので正しいパスを入力し「CGIテスト実行」ボタンをクリックしてください。
テスト結果:CGIは正常に実行されました。が表示されるまで繰り返して指定します。
CGIパスの指定は最後を / とします(例:/cgi-bin/calendar/、テストは javascript が使用できる環境が必要です)
テスト結果:欄には同時にインストールしようとしているサーバーの環境が表示されます、その他の設定の参考としてください。
- 同様にCGIプログラムをSSLサーバーで実行させる場合はSSLサーバーが使えるかをチェックします。SSLサーバーのURL https://〜を指定します。
実行CGI:の欄に setup.cgi のパスが表示されて実行されます。
下欄に テスト結果:CGIは正常に実行されました。が表示されていればSSLでCGIを実行することができるサーバーです。
もし、テスト結果:CGIは正常に実行されました。が表示されていなければSSLでCGIを実行することができません。
- データの保存場所をデフォルトではなく任意の場所(例えばWebからは見られない場所)に指定する場合はディレクトリのパスをフルパスで指定します。
保存できるかどうかチェックを行う場合は「保存できるか書込テスト」ボタンをクリックしてテストします。
- CGIを置くディレクトリ以下の画像ファイル、HTMLファイルがWeb上(ブラウザで)参照、表示できるかどうかによって進み先を選択します。
CGIを置くディレクトリ以下の画像ファイル、HTMLファイルがWeb上(ブラウザで)参照、表示できる場合は「判定」欄に「GOiGOi Project」の画像が表示されます。「参照できる」に進むことができます。
参照、表示できない場合は「判定」欄に「GOiGOi Project」の画像が表示されず「Internal Server Error」などが表示されます。
「参照できない」に進んで下さい。
- 「Web上(ブラウザで)参照、表示できない」に進む場合は、送信フォームを置くディレクトリをドキュメントルート以下に作成しますので、ディレクトリ名を指定します。
作成するディレクトリの深さを複数段作成する場合は aaaa/bbbb のように / で区切って指定します。
- .htaccess コンフィグレーション機能の使えるサーバーだとわかっている場合はチェックを入れます(セキュリティレベルが上がります)
- 「次へ進む」をクリックし以下の画面が表示されればOKです。
- 以下の sendmail で送信可能な sendmail がある場合はテスト送信が行われています。
/usr/bin/sendmail、/usr/lib/sendmail、/usr/sbin/sendmail、/usr/local/bin/sendmail
受信成功した本文に sendmail のパスが記述されています。サーバー上にインストールした設定ファイルの calendar_set.pl の9行目に指定している sendmail のパスと一致しているかを確認してください。
手動でセットする場合は使用できる sendmail のパスを記述します。
- 【インストールに失敗しインストールをやり直す】
セットアッププログラム setup.cgi を再実行させます。
- 実行の結果以下の画面が表示されます。
- 「再インストールを実行する」のボタンをクリックします。
※注意 この様に setup.cgi は再インストールやスーパーバイザーのID、パスワードの再設定が行えますので、インストール終了後は setup.cgi のファイル名を変更しておくかパーミッションを実行権限がないものに変更しておいて下さい。
そして、 setup.cgi の実行が必要になったときに元に戻して実行するようにして下さい。
- エラーが表示される場合はもう一度手順に間違いがないか、パーミッションの設定は正しいか確認してください。
最も考えられる原因はディレクトリ、ファイルのパーミッションです。
- パーミッションはプロバイダー、サーバーによっては上記と異なる場合がありますので環境に合わせて変更してください。
特に777はどの環境でも問題なく使えるパーミッションですがセキュリティーレベルは一番甘い設定です。
もしご自分の環境で707などもっとセキュリティーレベルを上げても書き込み可能ならそちらに変更してください。
さらに設定を続けます
- 作業用ディレクトリを作成します。書込権限を与えるパーミッションを指定します。
- スーパーバイザーのID、パスワードを指定します。
- 「実行」ボタンをクリックします。
- ディレクトリ作成完了、スーパーバイザー登録完了が表示されます。
- 「メニュへ」ボタンをクリックします。
- 次に管理する対象を登録します。
- 今登録したスーパーバイザーのID、パスワードを入力します。
- 登録する状況のID(半角英数字)とその日本語名を入力します。
- その状況を管理するマスター管理者のIDとパスワードを入力します。
- 書込ディレクトリのパーミッションを指定します。
- 追加する予約状況のタイプを選択します。
- 管理者のメールアドレスを指定します。
- カレンダー、予約フォーム表示の色合いを選択します。
- 「状況追加」ボタンをクリックします。以下の画面が表示されます。
- 次に初期設定に進みます。
使用する予約送信フォームについて
- 予約を行う送信フォームは「マスター管理者メニュー」の「予約フォーム編集」処理で作成します。
自前の送信フォームでは予約のためのパラメータ等が埋めこまれていませんのでうまく動作しません。
自前の送信フォームを使いたい時は「予約フォーム編集」処理で作成したあとでHTMLファイルの送信フォームの部分を抜き出してカスタマイズしてください。
- 川崎有亮さんの作成されたフリーのjavascript、JKL.Calendar を使うと年月日入力欄をクリックするとカレンダーがポップアップ表示され希望の日を選択することができます。
- フォームジェネレータを使うと JKL.Calendar を簡単に組み込めます。
- JKL.Calendar を使用する場合は、ドキュメントルート(index.html と同じ場所)に作成したディレクトリ formmail_js の下に jkl-calendar.js をアップロードしておいてください。
- JKL.Calendar はカレンダー表示領域にセレクトボックスがあるとその部分の表示が抜けます。
これを回避するには年月日入力位置を年月日入力より下のセレクトボックスにかからないように変更するか、応急処置版をお使い下さい。
JKL.Calendar はこのホームページのダウンロードページからもダウンロードすることができます。
- フォームジェネレータを使わずに自前の送信フォームに JKL.Calendar を組み込む場合はJKL.Calendar を参考にして組み込んでください。
新しいバージョンへの入れ替え方法(ディレクトリ名は標準のものですので、ご自分の環境に合わせて読み替え下さい)
- バージョンアップは自己責任において実行してください。(バージョンアップを請け負うことも可能です)
- 最新のバーションをダウンロードして解凍します。
- 現在のデータを活かすためにインストールしたサーバーのジャンル名以下のディレクトリをダウンロードして保存しておきます。
(ディレクトリ /cgi-bin/calendar/calen_d の下にジャンル名のディレクトリがあります)
また設定ファイル calendar_set.pl もダウンロードして保存しておきます。
(ディレクトリ /cgi-bin/calendar/ の下にあります)
- 新しいバージョンをインストールします。
CGIをインストールしている現在のディレクトリが/cgi-bin/calendarであれば/cgi-bin/calendar1など新しいディレクトリを作成してそこにインストールします。
インストールする場合は状況ID名を旧にインストールしたものと同名で登録します。
新しいディレクトリ/cgi-bin/calendar1に保存しておいた calendar_set.pl を上書きでアップロードします。
保存しておいた状況ID名以下のディレクトリを新しくインストールした状況ID名以下の同じディレクトリに上書きでアップロードします。
旧のディレクトリ /cgi-bin/calendar のディレクトリ名称を /cgi-bin/calendar2 に変更します。
新しいディレクトリ /cgi-bin/calendar1 のディレクトリ名称を旧のディレクトリ名 /cgi-bin/calendar に変更します。
- これで旧のデータを活かしたまま新しいバージョンに移行できていますのでデータの編集、表示に問題がないか確認します。
もし問題があればディレクトリ名を以下のように元に戻せば旧の環境に戻すことができます。
/cgi-bin/calendar の名称を /cgi-bin/calendar1 に変更します
/cgi-bin/calendar2 の名称を /cgi-bin/calendar に変更します
新しくインストールした環境でうまく動作すれば、/cgi-bin/calendar2は削除して構いません。
使用講習会、説明会をご指定の場所で開催させていただきます
本サイトの CGI は高機能で何でもできますが、高機能のため使用方法を完全に理解するためには説明を受けた方が解りやすいと思います。京阪神奈の制作会社様には使用講習会、説明会をご指定の場所で開催させていただきます。最下段のメールアドレスまでお問い合わせ下さい。(場所が京阪神奈以外の場合は実費交通費が必要です)
インストール、CGI制作の請け負い
本サイトのプログラムは今までに
CGI をインストールされた方なら簡単にインストールしていただけますが、設定も含めたインストール、サイト構築作業、CGI制作を請け負うことも可能です。
お問い合わせページからご連絡ください。
GOiGOi Projectではフォームメール、WhatsNew(汎用データベース)、ページ自動生成、ページ更新、空き情報・予約など、ホームページを管理、運営する上でどうしても必要になってくるCGIをプロ仕様で提供しています。全てのプログラムは汎用CGIとして開発されていてどのようなサイトでもご使用いただけます。また、CGI制作も承ります。