XAMPP1.8.2でCGIプログラムを実行する方法


投稿日:2015年8月17日
  • 0
  • 4


CGIプログラムに触れたところ403エラーや500エラー

xampp-cgi

久しぶりにCGIプログラムをカスタマイズしようとXAMPPで実行してみたところエラーが出ました。

Apacheのエラーログ「C:\xampp\apache\logs\error.log」を調べてみたところ、Perlのパスが通っていないのが原因でした。

エラーの内容

[Sat Aug 15 21:54:52.065700 2015] [access_compat:error] [pid 2348:tid 1848] [client ::1:11760] AH01797: client denied by server configuration: C:/xampp/htdocs/xampp/hoge.cgi

簡単に対策できるので、残しておきます。


エラーの原因

通常UNIX系のサーバではPerlのパスが以下のようになっています。

#! /usr/bin/perl

対してXAMPPをCドライブ直下にインストールした場合、Perlのパスが以下のようになっています。

#! C:/xampp/perl/bin/perl

対策

CGIプログラムのパスをXAMPP用に変更してもいいのですが、今度は修正忘れで本番環境で動かないと騒ぎそうです。
そこでローカルではWindowsのシンボルリンク機能を使って疑似的に「/usr/bin/perl」で実行できるようにします。

スタートからプログラム名を指定して実行で「cmd」と入力してエンター。コマンドプロンプトを立ち上げて以下のコマンドでシンボリックリンクを作成します。

cd /
mklink /d c:\usr c:\xampp\perl
mklink /d c:\usr\local c:\xampp\perl

簡単に解説すると「mklink」がシンボルリンクを作るコマンド。
/d」はディレクトリ、「c:\usr」がリンク、「c:\xampp\perl」がターゲットです。

これで「c:\usr」へアクセスした時に、「c:\xampp\perl」へアクセスするようになります。

これで無事にCGIが実行できるようになります。


Apacheの設定

一応Apacheの設定が間違っている可能性もあるのでCGI用の設定を張っておきます。

XAMPPのApacheの設定ファイルは「C:\xampp\apache\conf\httpd.conf」にあります。

まずモジュールが読み込まれているか調べる

LoadModule cgi_module modules/mod_cgi.so

ルートディレクトリ以下でCGIを使えるようにExecCGIを有効にする

<Directory "C:/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

CGIスクリプトの拡張子を指定

<IfModule mime_module>
(省略)
    AddHandler cgi-script .cgi .pl .asp
(省略)
</IfModule>

これで実行できるはずです。

XAMPPでは「C:\xampp\apache\conf\extra\httpd-xampp.conf」もインクルードしているので、動作がおかしい場合は変な記述がないか調べてみてください。



現在のページを共有する



現在のページに関連する記事

XAMPP1.8.2でCGIプログラムを実行する方法 XAMPPで.htaccessを利用すると500Errorになる理由
XAMPP1.8.2でCGIプログラムを実行する方法 WordPress、XAMPP、WindowsXPで.htaccessがエラーになる場合の対処法
XAMPP1.8.2でCGIプログラムを実行する方法 XAMPPのApacheでエラーが出た際の対処法
XAMPP1.8.2でCGIプログラムを実行する方法 Webサービスの最前線で動作するApache HTTP サーバの初期設定
XAMPP1.8.2でCGIプログラムを実行する方法 最新のXAMPPをインストールし、安全・高速に運用する方法
XAMPP1.8.2でCGIプログラムを実行する方法 XAMMP導入時にApacheのVirtualHostを設定する方法
XAMPP1.8.2でCGIプログラムを実行する方法 Apacheで拡張子が「.html」のファイル内でPHPを実行する方法

おすすめの記事

Google Adsenseで配信される詐欺的なサイトのブロック用URLまとめ

Google Adsenseで配信される詐欺的なサイトのブロック用URLまとめ

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を作成しました

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を…

ImageMagickをWindowsのXAMPPに導入する方法

ImageMagickをWindowsのXAMPPに導入する方法

Question2AnswerへreCAPTCHAを導入する方法

Question2AnswerへreCAPTCHAを導入する方法

パソコン用メガネなんていらない!無料でできる5つの疲れ目対策

パソコン用メガネなんていらない!無料でできる5つの疲れ目対策

Web Fontの使い方とGoogle Fontsのオススメフォント 10選

Web Fontの使い方とGoogle Fontsのオススメフォント 10選

Windows 10でネットワークが不安定になった際の対策まとめ

Windows 10でネットワークが不安定になった際の対策まとめ

5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成する方法

5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成す…


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。