nitic cs exp perl
1.0.0
令和 5 年度開講
counter.cgiWeb ページの表示回数をカウントするためには、カウントデータを保存するファイルが必要です。以下に基本的な Perl CGI プログラムを示します。このプログラムは、カウンタファイルを読み、カウントを増やし、更新されたカウントをファイルと Web ページに書き戻します。
src/counter.cgi#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(:standard);
# カウンタファイルのパスを指定
my $counter_file = 'counter.txt';
# カウントを取得および更新
open my $fh, '+<', $counter_file or die "Can't open $counter_file: $!";
my $count = <$fh>;
$count = 0 unless defined $count;
$count++;
seek $fh, 0, 0;
print $fh $count;
close $fh;
# HTMLページを出力
print header;
print start_html('Counter Page');
print "This page has been viewed $count times.";
print end_html;この CGI プログラムを実行するには、以下の手順を実行します:
プログラムの保存:
counter.cgiという名前のファイルに保存します。実行権限の設定:
chmod +x src/counter.cgiXAMPP の設定:
CGI ディレクトリの設定:
/Applications/XAMPP/etc/httpd.conf)をエディタで開き、以下のように CGI ディレクトリを設定します:
<Directory "/Applications/XAMPP/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
プログラムの配置:
ファイルを/Applications/XAMPP/cgi-bin`ディレクトリにコピーします。/Applications/XAMPP/cgi-binディレクトリ内にcounter.cgiへのシンボリックリンクを作成することで、実際のcounter.cgiファイルが他の場所にある場合でも、XAMPP の Apache サーバーはそれを正しく認識し実行することができます。
シンボリックリンクを作成するには、ターミナルを開き、以下のコマンドを実行します(実際のcounter.cgiファイルのパスと、リンクの目的地を適切に置き換えてください): $ ln -s src/counter.cgi /Applications/XAMPP/cgi-bin/counter.cgi
このコマンドは/Applications/XAMPP/cgi-binディレクトリ内にcounter.cgiという名前のシンボリックリンクを作成し、このリンクは実際のcounter.cgiファイルを指します。その後、Web ブラウザを使ってhttp://localhost/cgi-bin/counter.cgiにアクセスすることで、CGI プログラムを実行することができます。
http://localhost/cgi-bin/counter.cgiにアクセスします。以上で、カウンタプログラムが動作し、Web ページにアクセスするたびにカウントが増加するはずです。また、カウンタ値はcounter.txtファイルに保存され、プログラムはそのファイルからカウント値を読み取ります。