22時08分07秒 [Perl/CGI]
拙作のフリーCGI「てがろぐ」をローカルのWindows PC上で動かす方法はいろいろあります。要は、Windows上でPerlが動作するようにして、何らかのWebサーバ(ソフトウェア)が稼働している状況を用意すれば良いだけですから。
ここでは、てがろぐ作者(=私のこと)が、てがろぐ開発時にローカルで動かしている方法を紹介します。
方法は簡単で、PerlはXAMPPでインストールし、Webサーバは「AN HTTPD」を使います。どちらも無料で使えます。
※XAMPPにはWebサーバとしてApacheが含まれていますからそれを使っても良いのですが、Apacheは規模が大きくて設定や仕組みの把握が大変ですし、ローカルのApache上でてがろぐCGIを稼働させるにはtegalog.cgiのソース1行目を編集する手間も必要ですから、ここでは使いません。代わりに、Windowsで動作する軽量なWebサーバである「AN HTTPD」を使います。
たぶん、目にするほぼ全ステップを記したと思いますので、下記の画面イメージを見つつ操作すれば、おそらく迷い無く進められるのではないかと思います。(^_^;)
※以下では、Windows11を使った画面イメージを掲載していますが、それ以前のWindowsでも(ほぼ)同様の手順でセットアップできます。
まず、XAMPPと、AN HTTPDと、てがろぐをダウンロードしておきましょう。それぞれ、以下のページからダウンロードできます。
この記事を書いている現在では、下記のサイズの3ファイルがダウンロードできました。
(148MB)
(1.02MB)
(0.5MB)動作にはWindowsが必要ですが、Windowsならそこそこ古いバージョンでも大丈夫だと思います。
まずは、XAMPPをインストールしましょう。
ここで必要なのはPerlだけなので、(わざわざXAMPPをインストールしなくても)ActivePerlやStrawberry Perl等を単独でインストールする手もあります。しかし、XAMPPをインストールすれば、「てがろぐCGIが必須としているPerlモジュール」も同時にインストールされるので、手間が省けます。
※てがろぐCGIが必要とするPerlモジュールは Time::Local と CGI.pm です。これらのうち、Time::Localは標準モジュールなのでPerl単体にも含まれているのですが、CGI.pmは(昔は標準モジュールだったものの)今では標準から外されてしまっているためPerl単体には含まれていません。そのため、ActivePerl等のPerlを単独でインストールした場合は、不足しているモジュールを自力で別途インストールする必要があります。一方、XAMPPなら、標準外のモジュールも含んだ状態でインストールしてくれるので楽です。(インストール先の perl\vendor\libディレクトリに多々収録されています。)
以下の手順でインストールして下さい。
まずは、XAMPP公式サイトからダウンロードしたインストーラを起動します。
※もしかしたら、最初に図のような警告ダイアログが表示されるかも知れません。このメッセージは、「XAMPPを C:\Program Files にはインストールしないで」と注意を促しているだけです。インストール先の指定画面になったときに他の場所を指定すれば良いだけなので、ここでは単に「OK」ボタンを押して閉じれば良いです。
XAMPPのセットアップウィザードが起動したら、図のようなウインドウが出てきます。
ここでは、インストールする機能を選択できます。
次に、XAMPPをインストールするフォルダを指定します。ここでは C:\xampp という浅い場所を指定しています。好きな場所にインストールすれば良いですが、できるだけ浅い場所の方が望ましいと思います。なお、普通のアプリケーションのように C:\Program Files は指定しないよう注意して下さい。特に希望が無ければ C:\xampp で良いでしょう。
次に、XAMPPのコントロールパネルで使う言語を選択します。選択肢に「Japanese」は存在しないので、よほどドイツ語が得意でない限りは、「English」を選んでおきましょう。
インストールに必要な設定は済んだので、「Next」を押して下さい。
たぶん数分くらいかかるのではないかと思いますので、完了まで待ちます。
※もしかしたら途中で図のようなWindows Defenderによる警告ダイアログが出てくるかもしれません(※Windows Defender以外のファイアウォールを使っている場合は、それが警告を出してくるかもしれません)。
図のような画面になれば、XAMPPのインストールは完了です。先に説明したとおり、今回は(単にPerlを使う目的でXAMPPをインストールしただけなので)XAMPPそのものを起動させる必要はありません。
なので、インストールさえ終わってしまえば、あとはもう放置で良いのですが、(別の目的にXAMPPを活用したいと思っている場合等のために)XAMPPを起動する際の注意点をついでに書いておきます。
※XAMPPを使う予定がないなら、ここは飛ばして次の項目へ進んで下さい。
先の手順の最後(No.10)で「Do you want to start the Control Panel now?」のチェックボックスをONにしたまま終了した場合や、XAMPPを手動で普通に起動した場合は、このようなウインドウが出てきます。右側に見えるボタン群の中から「Quit」を探して押せば、終了できます。
そのまま「Quit」ボタンで終了させると、図のようなエラーが出てくるかもしれません。これは、XAMPPを「管理者権限なし」で起動してしまったために、INIファイルへの書き込みが失敗して処理を続行できずに出てくるエラーです。
XAMPPのコントロールパネルを起動する際は、ショートカットを右クリックして「管理者として実行」を選択しましょう。
すると、図のようなユーザーアカウント制御の確認ダイアログが出てきますので、「はい」を押します。
すると、XAMPPのコントロールパネルが起動しますが、先程と違って左端のService欄がグレーアウトされておらず「×」が付いています。「×」はWindowsにサービスとして登録されていないという意味です(サービスとして登録すると、Windowsの起動と同時に起動させるような設定もできるようになります。その話は本題ではないので省略しますが)。「Quit」ボタンを押せば、先程のようなエラーはなく正常に終了できるハズです。
以上、XAMPPのコントロールパネルを起動させる際にはご注意下さい。(※今回説明する方法では、XAMPPのコントロールパネルを使う必要は全くありません。)
XAMPPをインストールした先が C:\xampp の場合、おそらくPerlのインストール位置は C:\xampp\perl\bin\perl.exe だと思いますが、念のために直接確認しておきましょう。
XAMPPのインストール先フォルダから順にサブフォルダをたどって下さい。
サブフォルダを Perl → bin とたどって(※緑色矢印参照)、perl.exe というファイルを見つけて下さい(※黄色矢印参照)。それがPerlの実行ファイルです。
Windows11の場合は、perl.exeファイルを右クリックして「パスをコピー」を選択すると、perl.exeへのフルパスがコピーできます。後で使いますので、どこかに保存(メモ帳にペーストして保存するとか)しておいて下さい。さて、次に簡易ウェブサーバ「AN HTTPD」をセットアップしましょう。
AN HTTPDにはインストーラはありませんので、どこでもお好きな場所にZIPファイルの中身を展開すれば、インストールは完了します。

ここでは例として、C:\Softwares\anhttpd という位置に展開しました。
最初にセットアップ(設定)が必要ですので、下記の手順で操作してみて下さい。
「AN HTTPD」は、httpd.exeという実行ファイルが本体です。ただし、ダブルクリックして起動させてはいけません。(その場合でも起動はできますが、設定変更が保存されずにエラーになります。)
実行ファイル httpd.exe は右クリックして、「管理者として実行」をクリックして下さい。設定を変更する際には常にこの方法で起動させる必要があります。
おそらくユーザアカウント制御の警告が表示されますので、「はい」をクリックして許可します。
もしかしたら図のようなWindows Defenderによる警告ダイアログが出てくるかもしれません(※Windows Defender以外のファイアウォールを使っている場合は、それが警告を出してくるかもしれません)。図のようにチェックを入れてから「アクセスを許可する」ボタンを押して下さい。(IPアドレスを指定することで、LAN内の他の端末からアクセスできるようにもなります。)
問題がなければこれで「AN HTTPD」が起動します。
これでようやく「AN HTTPD」のウインドウが見えました。
まずは、図の黄色矢印の先のように、メニューの「オプション」→「一般」をクリックして下さい。
すると、図のような設定画面が開きます。黄色矢印の先に示したドキュメントルート欄は、Webデータを置くフォルダです。標準では「AN HTTPD」のインストール先フォルダがそのまま指定されていますから、そのままの設定で使うわけにはいきません。(Web用のファイルを置く専用の)どこか任意のフォルダに変更しておきましょう。C:\Users\Sakura\Web というフォルダを用意したとして話を進めます。(※Cドライブ以外の場所でも構いません。)
ここで設定するのは、➊ドキュメントルート、➋無意味な設定の無効化、➌CGIを実行するPerlの位置 ……の3点です。C:\Users\Sakura\Web にしてあります。このとき、終わりに \ 記号を打たないように注意して下さい。終わりに \ 記号を書いてしまうと、保存時に「そんなフォルダはない」と言われて設定が取り消されてしまう仕様ですので。(^_^;)
すると、図のような画面がさらに開きます。ここでは「ファイル拡張子が .pl や .cgi のファイル」を何で実行するのかを指定します。最初から perl と書かれていますが、(perl.exeに対してPATHが通っていない限り)このままではPerlは実行されません。なので、実際にPerlが存在する位置に書き換える必要があります。perl のままでPerlを実行できます(お勧め)。
そこで、先程メモしておいた perl.exe へのフルパスをここに転記します。C:\xampp\perl\bin\perl.exe のように入力します。#! で始まる行(シェバン行)の情報は無視してくれます。そのため、tegalog.cgiの1行目を書き換える必要なく動作させられます。
先程の画面を[OK]ボタンで閉じると、図の画面に戻ります。
図の赤丸で示した位置にあるタブの「エイリアス」をクリックすると、図のような画面になります。
OFFにすると、こんな感じになります。
次に、タブの「表示/インデックス」をクリックすると、図のような画面になります。ここでは、➊起動時のウインドウの表示形態、➋フォルダ内のファイル一覧の表示設定 をしておきます。
上記ですべての設定は完了しましたので、[OK]ボタンを押して画面を閉じて下さい。
これで最初の画面に戻ってきました。以上で、Webサーバ「AN HTTPD」の設定は完了です。
「AN HTTPD」を起動している間は、http://localhost/ にブラウザでアクセスできるようになります。
AN HTTPDをWebサーバとして稼働させるだけなら、普通にダブルクリックして起動しても問題ありません。
しかし、設定を変更したい場合には、「管理者として実行」を選択して起動する必要があります。
AN HTTPDの実行ファイルである httpd.exe のショートカットをデスクトップ等に作っておくなら、そのショートカットのプロパティを以下のように操作することで、常時「管理者として実行」されるように設定できます。このように設定しておけば、単純にダブルクリックするだけで、管理者権限付きで起動できるようになって便利です。
ショートカットを右クリックして「プロパティ」を選択すると、上図の真ん中の画面が出てきます。ここで「詳細設定」ボタンを押すと、上図の右端の画面が出てきます。そこにある「管理者として実行」というチェックをONにすれば、常に「管理者として実行」されるようになります。
さて、ここまで到達したら、もう http://localhost/ でローカルに存在するWebを閲覧可能になっています。
もしドキュメントルート(=Webデータを置くフォルダ)に何らかの index.html ファイルを置いているなら、既にブラウザで http://localhost/ にアクセスすると、それがWebページとして表示されるはずです。
では最後に、てがろぐCGIを表示できるようにしてみましょう。(と言っても、特別な操作は要りません。単に置けば良いだけです。)
まずは、ブラウザで http://localhost/ にアクセスしてみて下さい。設定したドキュメントルートに何もファイルがないなら、図のように空白のIndexが見えます。もし、index.html等のファイルを置いているならそれが見えるハズです。もしエラーが表示されるなら、AN HTTPDが起動できているかどうかを確認して下さい。(なお、80番ポートが使えない等の理由で別のポートを使っている場合は http://localhost:8080/ のように「ポート番号も追記したURL」にアクセスする必要がある点にもご注意下さい。)
ここでは例としてドキュメントルートを C:\Users\Sakura\Web にしましたから、そこに tegalog というサブフォルダを作って、その中に tegalog-full.zip を展開します。C:\Users\Sakura\WebC:\Users\Sakura\Web\tegalogC:\Users\Sakura\Web\tegalog\tegalog.cgi
ブラウザで http://localhost/tegalog/ にアクセスすると(黄色矢印参照)、図のように tegalog フォルダ内のファイル一覧が表示されます(※表示されない場合は、設定が足りていません。先の手順No.15で、水色矢印の先のチェックを外したかどうかを確認して下さい。ただ、動作に問題はありませんから、そのまま使い続けても大丈夫ですけども。)tegalog.cgi の文字を足して下さい)。
すると、図のように、ローカルで稼働している「てがろぐ」の初期画面が見えるはずです! http://localhost/tegalog/tegalog.cgi になっています。
以上で、てがろぐCGIがローカルで動作するようになりました。
もし、http://localhost/tegalog/tegalog.cgi というURLの tegalog.cgi を省略して http://localhost/tegalog/ でアクセスできるようにしたい場合は、以下のように設定して下さい。
AN HTTPDの設定画面には、図の緑色矢印の先で示したように「デフォルトインデックス」という項目があります。ここを tegalog.cgi に書き換えると、(ファイル名を省略してディレクトリまでのURLでアクセスされた際には)『フォルダの中に tegalog.cgi が存在すればそれを表示する』という動作になります。
すると、図のように、ファイル名を省略したURLでアクセスできるようになります。(※ただし、この場合は index.html があっても表示には採用されなくなりますが。)
あとは、ログインして好きなように使って下さい!
「後からWebサーバにアップロードする」前提で何かを作る際は、Windowsが「ファイル名の大文字・小文字を区別しない」仕様のOSだという点にご注意下さい。Windowsローカル環境では Myphoto.JPG というファイルには myphoto.jpg とか MyPhoto.jpg のようなファイル名でも問題なくアクセスできますが、このファイルをそのままWebサーバにアップロードすると、大文字・小文字が完全に一致した Myphoto.JPG という指定でないと表示されません。Windows環境では時々ファイル拡張子が大文字で出力されていることもありますので。
以上、てがろぐCGIをローカルPC上で稼働させる方法(の1つ)でした。
あくまでも方法の1つというだけですから、他にも多々あると思います。
一番の正攻法は(せっかくXAMPPをインストールしたわけですから)XAMPPに含まれているWebサーバ「Apache」を使うことでしょうけども。
てがろぐをローカルで稼働させるだけなら上記で全然問題ありませんが、他のWeb製作プロジェクトにも使いたいという場合には、AN HTTPDだと不便な場合もあるかもしれません。そんなときには、「てがろぐをXAMPPで確認したいっ!」等をご覧になって、Apache環境を整えて、てがろぐもローカルApache上で稼働させると良いでしょう。
既にWeb上で稼働しているてがろぐのデータをコピーして使いたい場合は、(Web上で稼働しているてがろぐの)tegalog.xml と tegalog.ini ファイル(※)をダウンロードして上書きすると良いです。(パスワードも共有したい場合は psif.cgi ファイルもダウンロードすると良いですが、Webサーバとローカルとで使えるハッシュ化方式が異なる場合は、ログインに失敗します。その場合は、psif.cgiファイルの中身を一旦カラにして、ローカルだけでパスワードを作り直す必要があります。ローカルでは「パスワードなし」で使う手も良いかもしれませんが。)
※画像投稿をしている場合は images ディレクトリも、カスタム絵文字を使っている場合は emoji ディレクトリもダウンロードする必要があります。
※独自のスキンを使っている場合は、そのスキン構成ファイルもダウンロードする必要があります。
ローカルで稼働させたてがろぐのデータをWebサーバに上書きアップロードする場合は、必ず(Webサーバ側にあるファイルの)バックアップを先に取っておいて下さい。
この日記へのコメントはお気軽に! コメント数:4件
(前の記事) « 個人情報を含まない広報ならメールに本文を直接載せて送ってきてくれ
前後のエントリ
< 旧 / 新 >
Mabiさん、こんにちは。
コメントをどうもありがとうございます。
てがろぐCGIのデータファイルの仕様がお役に立ったようで嬉しいです。テキストエディタで中身を(人間が)見た場合でも分かりやすいようにしたいと思って、あのXMLモドキな形式にしましたので。それが役に立ったのなら、あの形式を使う仕様にした甲斐があったというものです。
末永くご愛用頂ければ幸いです。(╹◡╹)ノ
投稿者 にしし : 2024年08月29日 22:20
こんなCGIはじめてみました
ブログっぽい物をつくりたかったけどP㏋などがが全く分からず絶望していたとこでてがろぐに出会いました
とってもわかりやすかったです!
投稿者 光っているトマト : 2024年12月21日 20:37
お役に立ったようで良かったです。ご愛用頂ければ幸いです~。(╹◡╹)ノ
投稿者 にしし : 2024年12月22日 18:23
コメント数: 4件
昔にCGIを触っていた者です。
とある事情がありサイトの再構築をする事になりました。
それにあたりまたフリーCGIを探していたら多くのサイトが閉鎖されていて時代を感じました。
インスタやブログなど外のデータ格納サイトには頼りたくなく、でも日記のようなツールが欲しくて彷徨っていたら てがろぐ に遭遇しました。
他のサイト様のスクリプトも見たのですが、何せ以前の日記CGIのログを生かしたかったので素人知識では絶望していました。
しかしてがろぐはシンプルだけど緻密に作られているので、既存ログを分割してタグを入れて再結合して表示できるように再構築できました。
1500日分でしたがほとんどは置換と挿入で済み苦労も最小限でした。
ありがとうございました。
当時はApacheでテストしていたのですが、ANHTTPDのこちらの記事も見つけたので先ほど設定しました。
しばらくはスキンしか触らない予定ですが、これからもお世話になると思います。
取り急ぎお礼でした。
投稿者 Mabi : 2024年08月25日 16:57