個別記事のページです

2015年2月 5日(木)
このエントリーをはてなブックマークに追加

CGIが動かない!と思ったら確認する5つのポイント

メールフォームやアクセス解析システムでよく使われているCGIを使ったプログラム。
ホームページ作成ソフトを購入するとおまけでCGIが付いてくる事もありますね。


CGIをフリーで配布している場所も多いため、手軽にシステムを入れてみたいという方にはぴったりです。


その中で、よく「CGIを設置しましたが動きません!」とご相談頂いた際に
対処法として見ている場所やポイントがあるので、ご紹介します。

CGIが動かず500エラーが出てしまった画面
CGIを設置したけど正常に機能していない状態に出る画面ですね。


パーミッションの設定が間違っている

パーミッションとは、ファイルのアクセス権限のようなものです。
最初に確認すべきはやはりここだと思います!


サーバー会社によって若干違う場合がありますが、
■実行ファイルは「755」
■ログ取得などで使うデータ書き込み用ファイルは「666」
と設定するのが一般的のようです。


パーミッションの設定方法についてはCGI配布元でも大体指示が書かれていますので、
CGIファイルをサーバーにアップロードした後に確認しましょう。


perlのパス名の設定が間違っている

CGIファイルを開くと、一番上に#マークの記述があると思います。


書き方はこの2パターンがあります。
■#!/usr/local/bin/perl
■#!/usr/bin/perl


サーバーによっては、どっちの記述でもCGIが動く場合もありますし、
逆にどちらかの記述じゃないと動かないものもありますので、
CGIを設置する前に確認をしておいた方が良いポイントとなります。


文字コード・改行コードの設定が間違っている

CGIによっては文字コードと改行コードを決められたものに指定しないと動かない場合もあります。


Windowsの場合ですと、「メモ帳」だと調べる事ができませんが、
「TeraPad」「CrescentEve」などのフリーソフトのテキストエディターで
文字コード・改行コードを確認・変更する事ができます。

TeraPadで文字コードと改行コードを見る


sendmailの設定が間違っている

これは主にメールフォーム用CGIを設置する時にある記述です。


主な書き方はこの2パターンがあります。
■/usr/sbin/sendmail
■/usr/lib/sendmail


メールフォームのCGIを設置した時に、フォームは動くけどメールが届かない!
または画面自体も「Internal Server Error」となる場合はこれが原因の時も。


この記述もサーバー会社によって推奨しているものが違うので、
perlのパス名と合わせて事前に確認しておきたいポイントです。


「;」などコードの記述で抜けがある

これも実はありがちなのですが、CGIのプログラミングの記述の中で
「;」「>(かっこのとじ忘れ)」や「input」のつもりが「inut」になっていた等、
コードの記述が1箇所でも間違っているとCGIが全く動かなくなる事があります。


CGIの中身をデフォルトのものから改変した後に動かなくなった場合は、
変更前の状態に一度戻してみると良いでしょう。




他にもサーバー会社によっては追加しなければいけないファイルがあったり、
CGIファイルをアップできるディレクトリが限られていたりと
色々と決まりがあるようですので、CGI設置前に確認してみてください。

書籍の内容と遜色のないPDFを無料プレゼントしております。
売れてる人しか知らない!売れるホームページの10の常識
過度な営業は一切しておりません。
お問合せ