ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

自宅サーバ for Linuxコミュのperlバスについて質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
FedoraCore6でつい最近やっとwebサーバーを構築しました。Linuxについてははじめたばかりの初心者です。CGIを使いたいと思いましたがうまくいきません。教えていただけないでしょうか。
CGIはkentWebさんからAskaをダウンロードしました。
Perlパスはデフォルトでは
#!/usr/local/bin/perl
となっていましたが、いろいろいじってしまいました。デフォルトがよいのでしょうか。
また、apacheの設定では
もともと
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" でしたが、現在
Alias /cgi-bin/ "/home/*/public_html/cgi-bin/"
としてあります。また
<Directory "/home/*/public_html/cgi-bin/"
Options ExecCGI
としてあります。
この状態でアクセスすると
internal Errorという表示がでます。

コメント(14)

apacheのエラーログを見てみると良いかと思います
Fedora CoreだとPerlが
/user/bin/perl
にあるので一行目を直す必要がある
確実なのは
which perl
でperlのパスを確認する事
Alias "cgi-bin" /home/*/public_html/cgi-bin/
のワイルドカード指定もそもそも間違いかと
そのcgiは
http://サーバーアドレス/cgiのパス
で動かしたいのか、
http://サーバーアドレス/cgi-bin/cgiのパス
で動かしたいのか、
http://サーバーアドレス/~ユーザー名/cgiのパス
で動かしたいのか、
http://サーバーアドレス/~ユーザー名/cgi-bin/cgiのパス
で動かしたいのか、
もしくはcgiはどこのディレクトリに置いたのか、それによって設定が変わります。
ありがとうございます。
which perlをやってみました!
/usr/bin/perl でした!!  ウレシィッ!
で、再起動してまた試してみました。
またinternal server error が出ました(8.8~)。
CGIの場所は
http://example.com/~hoge/cgi-bin/aska/aska.cgiです。
Apacheのcofの問題でしょうか。いろいろいじってしまいました。現在の設定は

DocumentRoot "/var/www/html"

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory "/var/www/html">
Options FollowSymLinks

UserDir public_html
<Directory /home/*/public_html>
AllowOverride None
Options FollowSymLinks
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/"
<Directory "/home/*/public_html/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

AddHandler cgi-script .cgi
となっています。
webページ見ることができます。CGIにたどり着けません。
SELinux Enable と見た。
chmod 755 .

当たるかな?
まず、ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/"
という記述ですが、ScriptAliasで記述したディレクトリにあるファイルはすべてCGIとして認知されてしまいます。
そのためaskabbsの書き込みログファイルまでもCGIとして実行しようとしてしまってるのではないでしょうか。
この行を削除してかまわないです。

それでもなおエラーが出るのであれば、
/var/log/httpd/error_log
を提示してください。
みなさん、本当にありがとうございました。(^o^)
aska.cgi 無事に表示することができました。
くもさん
やまけん@札幌さん
shinnさん
Redcat@MtFさん
まさたけさん
シナプスふなさん
本当に本当にありがとうございました。
みなさんのアドバイス全部やってみました。
error_logでは
premature end header 云々とでました。
apache orgでいろいろ解説していました。
で、一番簡単なCGIをサーバーマシンつくって
試しているうちに、askaがbinaryだから実行できないという表示が出てきました!?
まさか、と思いました、ホント。
まさたけさんがアドバイスしてくれていたのに、FFFTPでwindowsのpcからサーバーpcにおくっていたのですが、binaryで送られていました。転送1の設定で、「ファイル名で切り替え」にしてあったので、それで十分だと思っていました。
ホントにわかんないものですね。まさか、binaryだったとは。
やまけんさんのアドバイスもありがたかったです。パスの見つけ方、知りませんでしたから・・(:.:)
いろいろ調べて、scriptの意味も少しわかりました。ご忠告の一行は削除しないで、一応 #をつけましたが、これでいいですよね。
ひとまず、askaの掲示板が表示されましたので、今のところはひたすらながめて、いじらないでおります。
重ね重ね感謝です・・
参考までに、もう知っているかもしれませんが

ln -s /usr/bin/perl /usr/local/bin/perl
で/usr/local/bin/perlにリンクを張っておくと、/usr/local/bin/perlのパスでもCGIが使えますよ。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

自宅サーバ for Linux 更新情報

自宅サーバ for Linuxのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング