- ベストアンサー
Perl CGIの初学者がYahooジオシティーズでcgiが起動できない原因と切り分け方法を教えてください
- Perl CGIの初心者がYahooジオシティーズに加入し、cgiを設置しようとしていますが、cgiが起動できません。
- enquete-2.cgiに起動をかけると、ページを表示できませんというエラーメッセージが表示されます。
- ヘルプページでは問い合わせできず、Yahoo知恵袋でも回答が得られません。cgiが起動できない原因と切り分け方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>これの意味がよく分かりませんでしたが >~.cgiに起動をかけると えっ? アドレスもわからずにどうやって起動を? こちらは独自ドメイン取得をした場合のサブドメイン http://cgi.[サブドメイン].geocities.jp/[Yahoo! JAPAN IDまたはニックネーム]/ こちらは標準ドメイン http://cgi.geocities.jp/[Yahoo! JAPAN IDまたはニックネーム]/ どちらでしょう???
その他の回答 (4)
- kichi8000
- ベストアンサー率41% (660/1584)
ジオシティーズのcgiのパーミッションは全自動ですので気にしないでください。 まず、いきなり完成させるのはかなり上級じゃないと無理でして。 HTMLは動作しているようですが、間違いないでしょうか。 cgiは間違いなく動作する記述でテストしてからです。 テキスト転送、文字コード,改行コードなど基本の設定は正しいですか? 以下のスクリプトでチェックしてください。 転送モード、改行コードチェック test-1.cgi #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE html>\n"; print "<html>\n<head>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=x-sjis\">\n"; print "</head>\n"; print "<body>\n"; print "taronohyogen\n"; print "</body>\n</html>\n"; 動作したら、これをhttp://cgi.geocities.jp/my_id/test-1.cgi で呼び出してみてください。 文字コードチェック test-2.cgi #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE html>\n"; print "<html>\n<head>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=x-sjis\">\n"; print "</head>\n"; print "<body>\n"; print "太郎の表現\n"; print "</body>\n</html>\n"; これをhttp://cgi.geocities.jp/my_id/test-2.cgi で呼び出してみてください。
- Kaneyan-R
- ベストアンサー率42% (1341/3131)
他の方への補足コメントを踏まえた上で。 ”enquete-2.cgi”のパーミッション設定は? 「644(rw-r--r--)」じゃ動かないよ。 「705(rwx---r-x)」とか「755(rwxr-xr-x)」とか「775(rwxrwxr-x)」に変えないと。 一応説明しておきますと、「r=Read(呼び出し)」「w=Write(書き込み)」「x=eXecute(実行)」の各権限を意味し、ファイルの「所持者(オーナー)」「グループメンバー」「他者(ゲスト)」が、そのファイルをどう扱うかを設定したもので、数字はそれを並べたもの(8進数)。 ただ単にFTPで転送しただけだと、「644」になると思うので、「rw-r--r--」ってことは、誰にも実行権がありません(xが無い)から、誰も動作させる事はできない(当然サーバーも実行できない)わけです。 これを仮に「700(rwx------)」に変えたとするなら、オーナーだけはフルアクセス(呼び・書き・実行)する事が可能になりますが、httpでアクセスする場合はオーナーかどうか判断できないので、ゲストにも「呼び出し」と「実行」の権限を与えて、「705(rwx---r-x)」とします。 ※777だと全員フルアクセスになりますが、誰でもCGI自体を書き換え可能になるので、セキュリティ上危険。 提示の講座だと、Windowsに「Apache」と「Active Perl」をインストールしてローカル実行させているので権限は不要(と言うか、設定できなくもないけど無意味)。サーバへのアップロードは一番最後の項にあるようです。そこでパーミッションについて書かれています。 ※よくよく読んだら、例題6の最後にも書かれていますが・・・読みました? ※HTMLのダブルクォートが無いのは、ご愛嬌ですよね?
お礼
パーミッションの件、丁寧に御指導いただき誠にありがとうございました。 777だと cgi自体書き換え可能というのはやばいですよね。 ダブルクォートの件は、つけて動かなかったので、ためしにはずしてみたものです。 ジオシティーズ以外のフリーサーバでやってみようと思います。 みなさま、ご指導ありがとうございました
- kichi8000
- ベストアンサー率41% (660/1584)
フォームの内容にクオーテーションが全くないですが、わざとですか?
補足
ひきつづきご返事ありがとうございます。 ”” を入れて 動かないので、入れないでやってみたものです。 やはり動きません。。。
- kichi8000
- ベストアンサー率41% (660/1584)
他のサイトのスクリプトをそのまま使ったのですね。 いけませんね。 geocitiesのperlのパスは #!/usr/bin/perl です http://geocities.yahoo.co.jp/originalcgi/ http://home.e02.itscom.net/shouji/pc/perl/s-06.html 例題にあるような #!/usr/local/bin/perl とは違います。
補足
説明足りずすみませんでした。 そこも #!/usr/bin/perl に変えてあります。。。 ひきつづき宜しくお願いします。
お礼
いろいろ勉強すべきところがあることに気づきました。 もっと簡単なスクリプトで(Hello World)とかで どうやれば動くかやってみます。 丁寧なご回答ありがとうございました。
補足
サブドメインは取得していないので後者です 質問内容のFORM文にもその線で書きました。 引き続きご指導のほど、宜しくお願い申し上げます。