色々検証したい時に活躍している仮想サーバのFedora 29。
実機ではやりたくないことも気にせず試せる。
ホント、仮想サーバは天国だぜフゥーハハハァー!
そういやFedoraもバージョン上がってたな。
そのうち試しましょう。そのうち。
で、タイトルの通り、新しめなOSと古いCGIスクリプト。
何か嫌なことが起きるに違いない
という予感w
まずhttpd.confを変更してCGIを動くようにしてやらないといけない。
設定値はデフォルトで
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
AllowOverride None
Options None
Require all granted
</Directory>
こんな風になってるはず。
それを
<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
AddHandler cgi-script .cgi .pl
Order allow,deny
Allow from all
</Directory>
AllowOverride None
Options ExecCGI
AddHandler cgi-script .cgi .pl
Order allow,deny
Allow from all
</Directory>
こんな感じに。
随分久しぶりで完璧に忘れてた。
#!/usr/bin/perl
print "Content-type: text/html \n\n";
print "hoge";
print "Content-type: text/html \n\n";
print "hoge";
テキトーなスクリプトを書いて、httpd.confで指定した/ver/www/cgi-bin
に配置。
ブラウザでアクセスすれば
Internal Server Error
ああ・・・やっぱり無慈悲なエラーがw('A`)
エラーログを見ると
AH01215: (2)No such file or directory
と。
何言ぅてんねん!オマエはそこにおるやろが!
ん?
無いのに500エラー?
404じゃないのか。
・・・・・あ。なんだか思い出してきた。
テスト用のスクリプトは面倒だからWindowsで作って
sambaで共有している格納場所(上記でいうところの/var/www/cgi-bin)に直接置いた。
そう。つまり改行コード。
Windowsで作ったのは特に気にすることもなく、エディタのデフォルトであるCRLF。
サーバに合わせてLFにしないといけなかった。
初心者にありがちなミス(ノ∀`)
面倒だからと直接置いたのが間違いだったw
案の定、テキストエディタで改行コードをLFにして保存したら動いた。
試したいCGIを動かすこともなく不貞寝w