Apache2.2+CGI Perlの設定
VirtualHost 名前ベースのバーチャルサーバーを運用
/home/ユーザー/public_html/cgi-bin/ にCGIをおけるようにする
私は大体CGIを使わないで、RubyかPHPで開発するので
Perlは使用しないのですが、CGIでParlを使えるようにして欲しい
ということで、Apache2.2にPerlの設定をしてみました。
設定は簡単みたいです。
/usr/local/etc/apache22/httpd.confの
#ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
のコメントが付いていないか確認しコメントアウトする
バーチャルサーバーやディレクトリに対して
Options +ExecCGI
AddHandler cgi-script .cgi .pl
を追加する。
では早速作業開始。
#cd /usr/local/etc/apache22/
[httpd.conf]
#コメントアウトする
#ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
:
<IfModule mime_module>
:
#コメントアウトされていれば#を取り除く
AddHandler cgi-script .cgi .pl
:
</IfModule mime_module>
:
:
:
あとは、CGIを置くフォルダに対して
Options +ExecCGI
SetHandler cgi-script
を加える。
たとえば、
[httpd.conf]
:
<Directory /ほにゃららん>
:
</Directory>
#すでにあるDirectoryディレクティブの後ろに追加
<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
SetHandler cgi-script
</Directory>
:
<Directory /ほにゃららん>
:
</Directory>
#すでにあるDirectoryディレクティブの後ろに追加
<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
SetHandler cgi-script
</Directory>
:
と加える。
テストスクリプトを作成します
[hello.pl]
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello CGI"
print "Content-type: text/html\n\n";
print "Hello CGI"
/home/daimazin/public_html/cgi-bin/hello.pl
に保存します。
スクリプトをWindowsで作成した場合、改行コードがCR+LFになるので
そのままでは"Internal Server Error"になります。
エディタで改行コードをLFに設定するか、
FTPで送るときに改行コードをLFに変換してください。
エディタが秀丸なら
[ファイル]-[エンコードの種類]-[改行=LF]
で変更できます。
パーミッションの設定を行います。
#cd /home/daimazin/public_html
#chmod 755 cgi-bin
#cd cgi-bin
#chmod 755 hello.pl
次に動作確認です。
http://www.daimazin.com/cgi-bin/hello.pl
とか
http://192.168.0.100/~daimazin/cgi-bin/hello.pl
をブラウザで開きます。
問題なく表示できれば完了。
できなければ、
/var/log/httpd-error.log
を参照し原因を探ってください。
ちとはまりました。。。。
/home/daimazin/cgi-bin
のように、cgi-binを置きたかったのですが、うまくいかなかった。
Options +ExecCGI
の"+"を忘れていて
ブラウザで"Forbidden"
とエラーが出て、あたふた。
.
0 件のコメント:
コメントを投稿