今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

自宅サーバーのCGIが動かない!

2006年1月15日 掲載

 自宅サーバーにApacheをインストールし、cgiを実行できるように設定した。しかし、cgiのプログラムを設置してもうまく動かない。そんなときは次のようなポイントをチェックしよう。

  1. 「Internal Server Error」と表示される場合
    • ftpクライアントでcgiプログラムをアップロードするときに「テキストモード」や「アスキーモード」を選択する。これはWindowsの改行コードがCR+LFであるのに対し、LinuxがLFを用いているため。「バイナリーモード」でアップロードすると改行コードの違いからトラブルを起こす。Windowsでcgiプログラムを編集するときに、エディタで改行コードをLFに設定できるのであれば、別にバイナリーモードでアップロードしてもかまわない。
    • cgiプログラムの1行目で指定するperlのパスが正しいかを確認する。Vine Linuxでは1行目が「#!/usr/bin/perl」となっていなければならない。できあいのcgiプログラムではここが「#!/usr/local/bin/perl」となっていることも多い。
    • cgiプログラムのパーミッション(許可属性)を確認する。cgiプログラムは「755」(所有者はすべて許可。それ以外は読み出しと実行のみ許可)に設定するのが基本。
    • サーバーにPerlがインストールされているか。コマンドラインで「which perl」と入力し、「/usr/bin/perl」と表示されるか確認する。もしインストールされていないときは、スーパーユーザーで「apt-get install perl」と入力してPerlを組み込む。
  2. 「Forbidden」と表示される場合
    • cgiプログラムだけでなく、ディレクトリのパーミッションにも注意が必要だ。cgiプログラムを格納するディレクトリのパーミッションも「755」にしておく。
    • cgiの実行の許可をしていないディレクトリにcgiプログラムをアップロードしている。ディレクトリでcgiプログラムを利用できるようにするには、httpd.confで「Options ExecCGI」という記述が必要である。
  3. 「Not Found」と表示される場合
    • アップロードするディレクトリを間違えてはいないか。標準の設定ではhttpd.confに「ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/」という記述がある。「/home/httpd/html/cgi-bin」ではなく、「/home/httpd/cgi-bin」にアップロードする必要がある。
  4. cgiプログラムがそのまま表示される場合
    • httpd.confで「#AddHandler cgi-script .cgi」の行のコメントアウトを解除する。コメントされたままでは、拡張子cgiのファイルが実行可能なcgiプログラムとして認識されない。

 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。