Search Posts

Visits: 12

Nobuyuki SAMBUICHI
ISO/TC295 Audit data services/SG1 Semantic model Convener

Apache PerlのWebアプリケーションは、20世紀末にインターネットが始まったころから広く使われています。
Windows 10にローカルサーバーを設けて、AWSのEC2(Linux 2)で提供しているアプリケーションをパソコン単体で利用可能にしました。
Linux 2では、ブラウザからの要求をNginxのCGIインタフェースで受け付けてアプリの処理をシェルスクリプトで提供しています。
Windows 10でもLinux環境の構築は可能ですが、Linuxの知識が前提となってしまうのでWindowsの知識さえあれば管理できるように、昔ながらのApache PerlのWebアプリケーションとして環境を移行しました。

20年ぶりなので、Perlの環境構築とApache – CGI – Perlの環境設定に苦労しましたが、Chat GPTのQ&Aとネット情報をもとに作業しました。

1. Perlの環境構築

Active PerlやStrawberry Perlがよく使われているようです。

1.1. Active Perl(不採用)

15年前にも使っていたので最初に試しました。

Active Perlは、ActiveStateの
Download Perl
からのダウンロードです。

230730Picture1

但し、ダウンロードボタンをクリックするとログイン/ユーザ登録の画面に遷移し、無償利用がむつかしそうでしたので断念しました。

230730Picture2

1.2. Strawberry Perl(採用)

Strawberry Perlは、次の
https://strawberryperl.com
から、
strawberry-perl-5.32.1.1-64bit.msi
をダウンロードし、msiファイルをダブルクリックしてインストールします。

230730Picture3

インストール先は、
C:\Strawberry\

Perlのパスは、
C:\Strawberry\perl\bin\perl.exe
です。

バージョン確認します。v5.32.1です。

PS > \Strawberry\perl\bin\perl.exe -v

This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread

Copyright 1987-2021, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

PS >

インストールの確認用に次の first.pl を実行します。

first.pl
#!C:/Strawberry/perl/bin/perl.exe
print "Content-type: text/html\n\n";
print "Hello, World.";

Windows PowershellでPerlの動作を確認します。このプログラムは、Apachの環境構築後の確認でも使用します。

PS > perl.exe first.pl
Content-type: text/html

Hello, World.
PS >

Hello, World.が表示されました。

2. Apacheの環境構築

2.1. 何所からダウンロードするか

Apacheからは、ソースコードしかダウンロード出来ないので、
Windows 10用の実行可能プログラムは、次のページからリンクされる団体のページからダウンロードします。

230730Picture5

2.2. Apache Lounge(不採用)

ネット記事で紹介されることの多いApache Loungeを試しました。

230730Picture6

PGP 署名確認したところ、鍵の所有者が “Steffen Land (Apache Lounge) <info@apachelounge.com>” であることが確認できましたが、この鍵は信頼できる署名ではないとの警告がありました。これは、この鍵が信頼されている鍵として証明されていないため、所有者の確認ができないことを示していますので、こちらは不採用としました。

次に確認手順を記載します。

2.2.1. PGP 署名確認

ダウンロードページにある注意書きに従って、ファイルのチェックを実施しました。

To be sure that a download is intact and has not been tampered with, use PGP, see PGP Signature

Google翻訳:ダウンロードが完全で改ざんされていないことを確認するには、PGP を使用してください。「PGP 署名」を参照してください。

確認家淳をChatGPTに確認しました。

ファイルのPGP署名を確認するには、PGP署名ファイルと対応する署名者の公開鍵が必要です。以下は、PGP署名を検証する手順のステップバイステップガイドです:

  1. PGP署名と公開鍵を取得する:
    検証したいファイル(例:myfile.txt)とPGP署名ファイル(例:myfile.txt.ascまたはmyfile.txt.sig)の両方を入手してください。また、署名者の公開鍵も信頼できるソース(通常はウェブサイトや鍵サーバーから)で取得する必要があります。

  2. 公開鍵をインポートする:
    PGP鍵マネージャーまたはGPG(GNU Privacy Guard)ツールを開き、署名者の公開鍵をインポートします。例えば:

    gpg --import signer_public_key.asc
  3. 署名を検証する:
    PGP署名ファイルとPGP鍵マネージャーを使用して署名を検証します。例えば:

    gpg --verify myfile.txt.asc myfile.txt
    このコマンドは署名がファイルに一致するかどうかを検証します。検証が成功した場合、署名が正常で有効であることを示すメッセージが表示されます。
  4. 署名者の鍵を信頼する(任意):
    署名者とその公開鍵を信頼する場合は、PGP鍵マネージャーでその鍵を信頼済みとしてマークすることができます。これにより、その鍵で署名されたファイルを検証する際に毎回警告が表示されなくなります。

なお、具体的なコマンドや手順は使用しているPGPソフトウェアによって異なる場合があります。上記の例ではgpgコマンドラインツールを使用していますが、グラフィカルユーザーインターフェースを備えた他のPGPソフトウェアも利用可能です。

署名検証プロセスの完全性を保証するために、公開鍵を信頼性のあるソースから入手することを常に確認してください。PGP署名は、インターネットからソフトウェアや重要な文書をダウンロードする際に特に役立つ、ファイルの信頼性と整合性を検証する手段を提供しています。

— ChatGPT

GPG(GNU Privacy Guard)ツールの入手方法も確認しました。

以下は、「Gpg4win」をWindows 10で設定および使用する手順です:

Download Gpg4win:
Gpg4winのウェブサイト(https://gpg4win.org/)にアクセスし、Windows向けの最新バージョンのGpg4winをダウンロードします。

Install Gpg4win:
ダウンロードしたインストーラーをダブルクリックしてGpg4winをインストールします。画面の指示に従ってWindows 10システムにGpg4winをインストールします。インストール中に、Kleopatra(証明書マネージャーおよびGnuPG用のGUI)、GnuPG(GPGコマンドラインツール)、その他のコンポーネントのインストールを選択することができます。

— ChatGPT

2.2.2. 公開鍵をインポート

PS > gpg --import Steffen_Land.asc
gpg: 鍵BEE88A7829C17558:"Steffen Land (Apache Lounge) <info@apachelounge.com>"変更なし
gpg:           処理数の合計: 1
gpg:               変更なし: 1
PS >

2.2.3. 署名を検証

PS > gpg --verify httpd-2.4.57-win64-VS17.zip.asc httpd-2.4.57-win64-VS17.zip
gpg: Signature made 5/31/2023 9:35:50 PM ���� (�W����)
gpg:                using RSA key BEE88A7829C17558
gpg: Good signature from "Steffen Land (Apache Lounge) <info@apachelounge.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3D49 885E ADE8 BC39 9F46  D5DD BEE8 8A78 29C1 7558
PS >

“Steffen Land (Apache Lounge) <info@apachelounge.com>”が署名したファイルが改ざんされていないことが確認できましたが、
WARINGがありますのでChatGPTに確認。

このメッセージを見る限り、httpd-2.4.57-win64-VS17.zip ファイルの PGP シグネチャが httpd-2.4.57-win64-VS17.zip.asc ファイルと一致していることが確認されています。そして、シグネチャを作成した鍵の所有者が “Steffen Land (Apache Lounge) <info@apachelounge.com>” であることが表示されています。

ただし、警告として、この鍵は信頼できる署名ではないと警告されています。これは、この鍵が信頼されている鍵として証明されていないため、所有者の確認ができないことを示しています。

これが「使っても良いか」という具体的な判断をすることは難しいですが、重要なファイルをダウンロードしている場合は、ファイルの提供元を確認し、信頼性のあるソースから提供されていることを確認することが重要です。

Apache HTTP Serverをダウンロードする際は、公式なソースから入手することを推奨します。公式ウェブサイトや公式ダウンロードサイトから提供されるファイルは、信頼性が高く、セキュリティ対策がなされていることが期待できます。

— ChatGPT

ということなので、他も確認することとしました。

2.3. Apache Haus(採用)

230730Picture8

httpd-2.4.55-o111s-x64-vs17.zipをダウンロードします。

2.4. ダウンロードしたら次は

次に、ダウンロードしたhttpd-2.4.55-o111s-x64-vs17ファイルは、Apache HTTP Serverのバイナリ(実行可能ファイル)です。これをWindows上で動作させるためには、以下の手順に従ってインストールと設定を行う必要があります。

  1. ファイルの解凍:
    ダウンロードしたhttpd-2.4.55-o111s-x64-vs17ファイルは、おそらく圧縮されています。このファイルを適当な解凍ツールを使用して解凍してください。

  2. インストール:
    解凍されたファイルには、Apache HTTP Serverの実行ファイルや設定ファイルが含まれています。適切なディレクトリにインストールしてください。一般的なディレクトリは`C:\Apache24`ですが、インストール先は任意の場所に設定できます。

  3. 設定:
    Apache HTTP Serverは、設定ファイル(httpd.conf)を編集してカスタマイズできます。インストールディレクトリ内にconfディレクトリがあり、httpd.confファイルが設定ファイルとして使用されます。必要に応じて、ポート番号、ドキュメントルート、モジュールの有効化などを設定してください。

  4. 起動:
    コマンドプロンプトを管理者権限で開き、Apache HTTP Serverのインストールディレクトリに移動します。以下のコマンドでApacheを起動できます:

    httpd.exe
    Apacheが正常に起動した場合、ブラウザで `http://localhost` にアクセスしてApacheのデフォルトページが表示されるはずです。

これらの手順を順番に実行することで、httpd-2.4.55-o111s-x64-vs17ファイルからApache HTTP Serverをインストールし、Windows上で動作させることができます。Apacheは設定やモジュールをカスタマイズできるため、必要に応じて追加の設定を行うことも可能です。

— ChatGPT

C:\Apache24にインストールしました。

2.5. CGI実行環境設定

Linux2では、サーバー側の処理をシェルスクリプトで行っていますが、Windows 10ではLinux環境を構築してまで実行させるのは大変なので、PerlでCGI経由で実行させる形に移行しました。

Apacheの設定ファイル(httpd.conf)に、PerlのCGIスクリプトを実行させるための設定を追加する必要があります。

  1. mod_cgiモジュールの有効化:
    httpd.confファイル内でmod_cgiモジュールを有効にします。以下の行をコメント解除してモジュールを有効にします:

    LoadModule cgi_module modules/mod_cgi.so
  2. ScriptAliasディレクティブの追加:
    サーバー上でCGIスクリプトを実行するために、ScriptAliasディレクティブを使用してCGIスクリプトが配置されるディレクトリを指定します。例えば、C:/Apache24/cgi-bin/ディレクトリを指定します:

    ScriptAlias /cgi-bin/ "C:/Apache24/cgi-bin/"
  3. Optionsディレクティブの設定:
    httpd.confファイル内で、OptionsディレクティブにExecCGIを追加します。これにより、CGIスクリプトの実行を許可します:

    Options +ExecCGI
  4. AddHandlerディレクティブの設定:
    ファイル拡張子 .cgi.pl を含むリクエストをCGIスクリプトとして処理するために、AddHandlerディレクティブを追加します:

    AddHandler cgi-script .cgi .pl
  5. ディレクトリディレクティブの設定:
    ScriptAliasで指定したディレクトリにアクセスするために、以下のようにディレクトリディレクティブを追加します:

    <Directory "C:/Apache24/cgi-bin/">
        Options +ExecCGI
        AddHandler cgi-script .cgi .pl
        Require all granted
    </Directory>
    これにより、指定したディレクトリ内にある **.cgi** と **.pl** ファイルがCGIスクリプトとして実行されるようになります。
  6. Apacheの再起動:
    設定を変更したら、Apacheを再起動して変更を反映させます。

以上の設定をhttpd.confファイルに追加することで、PerlのCGIスクリプトが実行されるようになります。CGIスクリプトが配置されたディレクトリにアクセスする際は、適切なセキュリティ対策を行うことを忘れずに。

— ChatGPT

3. Apacheの自動起動設定

Windows 10でApacheを自動起動するためには、Apacheのサービスを設定し、Windowsの起動時に自動的に開始されるようにする必要があります。以下の手順に従って、Apacheを自動起動する方法を示します:

  1. Apacheサービスの設定:
    コマンドプロンプトを管理者権限で開きます(右クリックして「管理者として実行」を選択)。
    次のコマンドを入力して、Apacheサービスを登録します:
    `
    cd C:\Apache24\bin
    httpd.exe -k install
    `

  2. サービスの自動起動設定:
    「Win + R」キーを押して、実行ダイアログを開きます。次に、services.msc を入力して「OK」をクリックします。
    サービス管理ウィンドウが表示されるので、一覧から「Apache2.4」を見つけて右クリックし、プロパティを選択します。
    「スタートアップの種類」を「自動」に設定して、「OK」をクリックします。

これで、Windows 10の起動時にApacheサーバが自動的に起動するようになります。Apacheのサービスが自動的に開始されるため、手動で起動する必要がなくなります。ただし、Apacheの設定やアプリケーションの要件に応じて、サービスの動作を調整することも可能です。

— ChatGPT

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です