- ベストアンサー
サクラのレンタルサーバーです。CGIが動きません
サクラのレンタルサーバーを借りました。 早速CGIを試そうと思ったのですが、原因不明のInternal Server Errorが出ます。 cgi-binはいらないとのことですので、wwwにそのまま入れました。 index.htmlも同じ場所にありそれは出ますのでパス間違いではないです。 またパーミッションも777にしてみましたが駄目です。 #!/usr/local/bin/perl print "Content-Type: text/html\n"; print "\n"; print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; こんな感じで、TELNETでログインして実行も出来ます。 bash-2.05b$ ./index.cgi Content-Type: text/html <html><body>abc</body></html>bash-2.05b$ いろいろ調べたのですが ◆パーミッション→OK ◆TELNETで実行してみる→OK ◆perlへのパスは?→/usr/local/bin と /usr/bin どちらでもいいそうです。験しに変えましたが状況変わらず。 何か気が付いたことがあれば教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SAKURAサーバー利用者です。 私のサーバーの方で既に動いているCGIファイルを確認した所、パーミッションは「755」になっていました。 試しにパーミッションを「777」に変更してみたら、Internal Server Errorと表示されちゃいました。 パーミッションは「755」で試してみましたか?
その他の回答 (1)
- umasikajiro
- ベストアンサー率67% (545/803)
まず基本的に.cgiとCGIを置くディレクトリのパーミッションは705にしてください(まあ755でもいいっちゃいいが) これでほとんどのUNIXサーバーはOKです。(後述のSuexec有りでも無しでも) SAKURAインターネットのサーバーはかなり昔から SUEXECを使っていますので .cgiファイルとそのディレクトリに対してオザーやグループに書き込み権限を与えると SUEXECのセキュリティチェックに引っかかって 結果Internal Server Errorになります 自分でサーバーを構築する場合だとSuexecによるエラーはほかにもありますがね http://oshiete1.goo.ne.jp/kotaeru.php3?q=2154099 のとか ユーザーtarou の領域に 他のユーザー(jirouとかrootとか)が所有者になるcgiは動かないとか、、、
お礼
なるほど、納得です。 たくさんの人が共用するサーバーだから、 otherやgroupに権限を与えないようにしましょう、ってことですね! 安易に777にしてしまいました。 テストだから良いやって、いつも癖に成っていました。 勉強になります。 早速やってみます!
補足
理由まで教えていただいて大変ありがたいです。 きっと、自分だけでは解決できなかったと思います。 始め駄目だったのですが、 格納ディレクトリも777にしていたのが駄目な原因でした。 ディレクトリも755にしないと駄目なんですね。
お礼
助かりました!!!! 755にしたら動きました!!! ありがとうございます。 自分だけだったら、いつまでたってもわからなかったと思います!
補足
パーミッションがゆるすぎると駄目・・・ そんなことってあるのですね。 試してみます。 ありがとうございます