CGIスクリプトについての質問です。Linux上のWebサーバ(Apache)にて、以下の処理をさせたいのです。


 ・画像ファイルの要求を受け付ける
 ・ファイル名は0001.jpgなどの通番
 ・ファイルがすでにあれば、それを返す
 ・無ければ、サーバ側でプログラムを実行し生成した上で返す

以下は例です。

 クライアントが「http://www.example.com/photo/0001.jpg」を要求
   サーバに0001.jpgが既存するので、そのまま返す

 クライアントが「http://www.example.com/photo/0005.jpg」を要求
   サーバに0005.jpgがないので、AAAA.plを実行し生成させ、
   できたファイルを返す

AAAA.plのサンプルも含め、このような一連の処理を行う方法を知りたいのです。実際に画像を生成するプログラムは、すでにあります。Perl希望です。

ズバリのご回答のみ、ポイントをお送りします。以上、よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ootatmt No.1

回答回数1307ベストアンサー獲得回数65

ポイント25pt

http://httpd.apache.org/docs/2.0/ja/howto/htaccess.html

Apache ���塼�ȥꥢ��: .htaccess �ե����� - Apache HTTP ������

スクリプト名は、AAAA.pl とせずに、photo として、ルートディレクトリにおきます。

htaccess の設定などで、photo を CGI として実行されるようにします。


この設定で、

http://www.example.com/photo/xxxx.jpg

にアクセスすると、photo が実行され /xxxx.jpg が PATH_INFO として渡されるので、これを見て

xxxx.jpg があれば、それを読み出し表示する。

xxxx.jpg がなければ生成して表示する。


とします。

id:Mugicha2004

ご回答、ありがとうございます。簡単にできそうですね。すみませんが、htaccess関連の設定に不慣れなのです。もう少し、簡易にかつズバリと設定などをご教授いただけると幸いです。熟読する時間がないものでして... よろしくお願いいたします。

2005/09/15 15:00:47
id:ootatmt No.2

回答回数1307ベストアンサー獲得回数65

ポイント25pt

htaccess の設定がわからなければ、以下のようにしてはどうでしょう。


画像のURLを

http://www.example.com/photo/xxxx.jpg

ではなく、

http://www.example.com/photo.cgi/xxxx.jpg

とします。


これで、photo.cgi が実行されて /xxxx.jpg が PATH_INFO として渡されます。


photo.cgi を以下のようにしてテストしてみればよくわかると思います。


---

#!/usr/bin/perl


print ”Content-type: text/html¥n¥n”;

print $ENV{PATH_INFO};

---


画像ファイル名を受け取った後の処理は、前述のとおりです。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_kj14.htm

CGI-Perl 基礎実地編 - 実習14 (画像レスポンス、画像出力、画像表示) - SAK Streets

ちなみに画像出力の方法はこちらにありました。

ご存知だとは思いますが参考まで。

id:andi No.3

回答回数448ベストアンサー獲得回数0

ポイント10pt

.htaccessを使用する場合、下記のような内容でAAAA.plを実行可能です(photoディレクトリに配置)。


DirectoryIndex AAAA.pl

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ AAAA.pl/$1 [L,QSA]


※mod_rewriteがインストールされている必要があります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません