Toconangoのブログ

プログラミングのユルフワ備忘録です。間違った記載等ありましたらご連絡頂けますと幸いです。

Apache cgiが動かない

環境

原因と対策

1.Apacheのデフォルトページが表示される

apacheのconfのDirectoryIndexを指定する

DirectoryIndex index.cgi index.html

IfModule dir_moduleは使わないほうが良いらしい。

参考:Apache設定ファイルのIfModuleは消しておく方がよい。 - Qiita

なので、下記は非推奨

<IfModule dir_module>
    DirectoryIndex index.cgi
</IfModule>

2.cgiのソースが表示される

apacheのconfのAddHandlerを指定する

AddHandler cgi-script .cgi

3.“Forbidden You don't have permission to access /index.cgi on this server.”と表示される

apacheのconfのOptions Indexes FollowSymLinks Includes ExecCGIを設定する

<Directory "/">
    #Options Indexes FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
</Directory>

4.apacheのエラーログで”Can't locate CGI.pm”

CGI.pmがインストールされているか調査

$  find `perl -e 'print "@INC"'` -name '*.pm' -print | grep CGI
find: ‘/usr/local/lib64/perl5’: そのようなファイルやディレクトリはありません
find: ‘/usr/local/share/perl5’: そのようなファイルやディレクトリはありません

CGI.pmがインストールされていない場合、インストールする

$ sudo yum -y install perl-CGI

5.文字化けする

apacheのconfの文字コードの設定を変える

参考:Apache 文字化け対策 AddDefaultCharset | CentOSサーバ構築術 文具堂

#AddDefaultCharset UTF-8