CGIのインストール・設定

動作確認システム CentOS 7

インストール

yumでPerlとRubyをインストールする。

yum -y install perl ruby

設定

vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
    # CGIの実行を許可(ExecCGIを追加)
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ExecCGI
</Directory>

<IfModule dir_module>
    #ディレクトリインデックスのファイル名指定にCGIを追加
    DirectoryIndex index.html index.htm index.php index.cgi
</IfModule>

<IfModule mime_module>
    #CGIとして扱うファイルの拡張子を設定
    #AddHandler cgi-script .cgi
    AddHandler cgi-script .cgi .pl .rb
</IfModule>

Perlコマンドへ/usr/local/bin/perlでもアクセスできるようにする

ln -s /usr/bin/perl /usr/local/bin/perl

動作テスト

動作テスト用スクリプトを以下に記載するので、それをアップロードして動作することを確認する。

Perl

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<!DOCTYPE html>\n";
print "<html>\n";
print "<head>\n";
print "<meta charset=\"UTF-8\">\n";※システムの文字コードがUTF-8の場合
print "<meta charset=\"euc-jp\">\n";※システムの文字コードがEUCの場合
print "<title>テスト</title>\n";
print "</head>\n";
print "<body>\n";
print "CGIテスト\n";
print "</body>\n";
print "</html>\n";

Ruby

#!/usr/bin/ruby

print "Content-type: text/html\n\n"
print "<!DOCTYPE html>\n"
print "<html>\n"
print "<body>\n"
print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n"
print "Ruby Test Page<br />"
print Time.now.strftime('%Y/%m/%d')
print "\n</div>\n"
print "</body>\n"
print "</html>\n"

PerlとRubyでは、パーミッションにも気をつける必要がある。 パーミッションを705に変更しないと、ブラウザで正しく表示されない。

chmod 705 [ファイル名]
%d人のブロガーが「いいね」をつけました。