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ファイルがダウンロードできました。
動作には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
ディレクトリに多々収録されています。)
以下の手順でインストールして下さい。
C:\Program Files
にはインストールしないで」と注意を促しているだけです。インストール先の指定画面になったときに他の場所を指定すれば良いだけなので、ここでは単に「OK」ボタンを押して閉じれば良いです。
C:\xampp
という浅い場所を指定しています。好きな場所にインストールすれば良いですが、できるだけ浅い場所の方が望ましいと思います。なお、普通のアプリケーションのように C:\Program Files
は指定しないよう注意して下さい。特に希望が無ければ C:\xampp
で良いでしょう。
先に説明したとおり、今回は(単にPerlを使う目的でXAMPPをインストールしただけなので)XAMPPそのものを起動させる必要はありません。
なので、インストールさえ終わってしまえば、あとはもう放置で良いのですが、(別の目的にXAMPPを活用したいと思っている場合等のために)XAMPPを起動する際の注意点をついでに書いておきます。
※XAMPPを使う予定がないなら、ここは飛ばして次の項目へ進んで下さい。
以上、XAMPPのコントロールパネルを起動させる際にはご注意下さい。(※今回説明する方法では、XAMPPのコントロールパネルを使う必要は全くありません。)
XAMPPをインストールした先が C:\xampp
の場合、おそらくPerlのインストール位置は C:\xampp\perl\bin\perl.exe
だと思いますが、念のために直接確認しておきましょう。
perl.exe
というファイルを見つけて下さい(※黄色矢印参照)。それがPerlの実行ファイルです。
さて、次に簡易ウェブサーバ「AN HTTPD」をセットアップしましょう。
AN HTTPDにはインストーラはありませんので、どこでもお好きな場所にZIPファイルの中身を展開すれば、インストールは完了します。
ここでは例として、C:\Softwares\anhttpd
という位置に展開しました。
最初にセットアップ(設定)が必要ですので、下記の手順で操作してみて下さい。
C:\Users\Sakura\Web
というフォルダを用意したとして話を進めます。(※Cドライブ以外の場所でも構いません。)
C:\Users\Sakura\Web
にしてあります。このとき、終わりに \
記号を打たないように注意して下さい。終わりに \
記号を書いてしまうと、保存時に「そんなフォルダはない」と言われて設定が取り消されてしまう仕様ですので。(^_^;)perl
と書かれていますが、(perl.exeに対してPATHが通っていない限り)このままではPerlは実行されません。なので、実際にPerlが存在する位置に書き換える必要があります。perl
のままでPerlを実行できます(お勧め)。
C:\xampp\perl\bin\perl.exe
のように入力します。#!
で始まる行(シェバン行)の情報は無視してくれます。そのため、tegalog.cgiの1行目を書き換える必要なく動作させられます。
以上で、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を表示できるようにしてみましょう。(と言っても、特別な操作は要りません。単に置けば良いだけです。)
C:\Users\Sakura\Web
C:\Users\Sakura\Web\tegalog
C:\Users\Sakura\Web\tegalog\tegalog.cgi
tegalog.cgi
の文字を足して下さい)。
http://localhost/tegalog/tegalog.cgi
になっています。
以上で、てがろぐCGIがローカルで動作するようになりました。
もし、http://localhost/tegalog/tegalog.cgi
というURLの tegalog.cgi を省略して http://localhost/tegalog/
でアクセスできるようにしたい場合は、以下のように設定して下さい。
tegalog.cgi
に書き換えると、(ファイル名を省略してディレクトリまでのURLでアクセスされた際には)『フォルダの中に tegalog.cgi が存在すればそれを表示する』という動作になります。
「後から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