• ベストアンサー

やっぱり分からなかったです・・・

http://shortmessage.hypermart.net/ ここのショートメッセージっていうのなんですが この前も質問したんですがやっぱり分からなかったです。 1.ソースのダウンロード 2.index.cgi の最上部のPerlのパスを設定する ex) #!/usr/local/bin/perl 3.各CGIの変数設定 index.cgi (ヒント) 中身を見ながら適切に設定してください。 4.サーバにUPしたあと上記の『ファイル構成』に記したパーミッション値に属性変更 ここでskin.htmlっていうのは元あったWebのトップページでよい。 skin.html内にShortmessageを入れたい位置に {short} と書く。 5.index.cgiにアクセスしてみる。 6.動いてなかったら変数の見なおしなどしてみてください。 の内、3までしか分からないです。 CGIというやつは初心者なのですが、これは初心者でも出来るものなんでしょうか? 分かる人がいれば(出来るだけ詳しく)教えてください、お願いします。

  • CGI
  • 回答数4
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • kinoata
  • ベストアンサー率23% (17/72)
回答No.4

index.cgiにアクセスするということは、 (この場合CGIなのでサーバを介して)ブラウザでファイルを見ることです。 アップしたURLが http://www.provider.ne.jp/~yourID/ だとしたら、 http://www.provider.ne.jp/~yourID/index.cgi にブラウザでアクセスすればよいです。

kei099
質問者

補足

やっと出来ました。本当にありがとうございました。

その他の回答 (3)

  • kinoata
  • ベストアンサー率23% (17/72)
回答No.3

では次に、jcode.plも755に設定してください。 その次に、このショートメッセージを表示させようと思ったHTMLのファイル名を、index.cgi中の変数に設定してあることを確認してください。 例えば、index.html中に表示させようと思っていたのなら、 index.cgi中の ###########変数設定ここから########### #ベースHTML $skinfile='./skin.html';       ~~~~~~~~~~~~~ を、 $skinfile='./index.html'; に変えてやる必要がありますよね。 その後、ショートメッセージを表示させようと思ったHTMLの中の ショートカットを表示させたい部分に {skin} と書いてやる。 これで完了です。 あとはindex.cgiにアクセスすれば上手くいくようになりますよ。

kei099
質問者

補足

すいません、すごく初歩的に質問だとは思うんですが index.cgiにアクセスするってどういう意味ですか? どうやってやるんですか? 質問ばっかですいません。

  • kinoata
  • ベストアンサー率23% (17/72)
回答No.2

3まではできるんですよね。 perlの設定はOKですか? プロバイダによっては #!/usr/bin/perlの場合もあるし。 とりあえず、index.cgiは何も変更せずとも動くので、 このままファイルをサーバにアップしてしまいましょう。 そのあとの4についてですが、こいつは要するにインターネットというのは不特定の人間がアクセスするので、その誰だかわからないやつにもこのCGIを実行させる権限を与える、というような意味で解釈してもらえば結構です。うしろの755とかいう数字は、それを与えるためのパラメータなのです。 具体的に言うと、例えばFFFTPというソフトを使っているのであれば、 ファイルをアップしたあと、パーミッション値を変更したいファイルの上で右クリックをし、属性変更を選びます。そして指定されている通りの数字になるようパーミッション値を変更してやればいいわけです。 具体的には、.cgiファイルには所有者は全ての権限を与え、グループ、その他には呼び出しと実行権限を与えてやります(=755ってことです)。 .logファイルは、その他の人も書き込める必要があるので、666に設定する必要があるんですよ。ただ、このファイルは実行ファイルではないので、実行権限を与える必要が無いので666ということです。 で、ちょっとわかりずらい説明なのがskin.htmlのくだりなのですが、 ようするに、これは一回index.cgiでこのskin.htmlを読んでやって、その中で{skin}という記述のあるところに、ショートメッセージを表示やるようにHTMLを出力してやっているわけです。ですから、skin.htmlというのはあくまでもサンプルで、実際にはこのショートメッセージを表示させたいなと思っているHTMLファイルを(3のindex.cgiの中の変数で)指定してやる必要があるのです。 そしてそのhtmlファイル仲にはもちろん{skin}という記述が必要です。 ここまでできたら、あとはindex.cgiにアクセスするだけです。 index.cgiにアクセスしたら、index.cgiが指定されたHTMLファイルを読み込んで、{skin}という記述が見つからない限りそのまま出力してやり、{skin}という記述が見つかった場合そこにショートメッセージをひょうじさせてやる、という処理を行っています。 大雑把に説明しましたが、わかりましたか? パーミッションのことでつまずいたのなら、検索エンジンで「パーミッション 説明」とでもやると説明ページがいろいろ引っかかると思いますよ。 わからなければ、どこでつまづいたのか、そのときの状況を詳しく書いてください。もしくは設置したURLを書くのもいいかもしれません(これはちょっと危険かな?)。

kei099
質問者

補足

あってるかどうか分からないけど FFFTPでファイルを全部アップロードして、パーミッションというやつを index.cgiは755に、shortmessage.logを666にすることまで出来ました。 でも、ここから何をすればいいのか分からなくなりました。 ここから先の作業を具体的に教えてもらえませんか?

  • cse_ri
  • ベストアンサー率29% (74/253)
回答No.1

ショートメッセージ(http://shortmessage.hypermart.net)を見て、 サンプルをダウンロードして内容をざっとですが見てみました。 結論から言いますと、初心者にはレベルが高いですね。 私の感触では、  a.HTMLをツールに頼らず自分で書ける人  b.WWWサーバを自分で構築できる人。少なくともディレクトリ構成    くらいは分かっている。  c.Pearl,JavaScript,ASPなどのWeb系の言語の経験者 くらいわかっていないと、自由にカスタマイズできないのではないかと 思います。 a,bくらいのスキルがあれば、いろいろいじっている内に動くように なる可能性はあるかもしれません。

関連するQ&A

  • CGIが動きません

    uranai.cgiのパーミッションは755です。 #!/usr/local/bin/perlではなく #!/usr/bin/perlを使っていますが、 これはサーバの説明にありました。 下記URL内の3ファイルをCGIフォルダに格納して サーバにアップしましたが、エラーになります。 cgi-binにする必要はないとのサーバ設定の記述にありました。 動かない理由がお分かりの方は、ご教授いただけると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • perlのcgiが動かない・・・

    cgiを組もうと思い、まずは簡単なもので試そうと思ったのですが、 うまくいかず困っています。 ↓プログラムは、こんな感じです。 ファイル名:index.cgi #!/usr/bin/perl print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; <やってみたこと> ・Perlのパス「#!/usr/bin/perl」 が間違っていないか? which perl で /usr/bin/perl とでます。 ・Apache の設定が正しく行なわれているか? http://localhost でindex.htmlがきちんと表示できています。 ・「hello.cgi」 の設置場所を間違っていないか? プログラムソースが出るということは、 間違っていないのではないでしょうか? ・ためしに実行してみた TELNETで ./index.cgi <html><body>abc</body></html> とでてきました。 これはちゃんと動いているのでは?? 何か勘違いしていますか? お気づきの点を教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • CGIフォームが作動しない原因について

    メールフォームのCGIを作成したところ、起動せず、500番のISEエラーになってしまいます。 他のサーバーに置いたところ問題なく起動し、 perlのパスは #! /usr/bin/perl #! /usr/local/bin/perl どちらもためし、 パーミッションも、705や755などで試したのですが、作動いたしませんでした。 また、メールフォームCGIに問題があるのかと、簡易的なCGIを設置し、パスやパーミッションをいじってみたのですが、そちらも作動いたしませんでした。(他サーバーでは機動確認済み) やはり、パーミッションやperlのパスがサーバーによって独自の設定になっているのでしょうか? その場合、サーバー管理会社に連絡をとらずに、確認する方法はあるのでしょうか? CGIやサーバーなどのネットワークに詳しくないもので、 どうかご教授ください!

    • 締切済み
    • CGI
  • 500 Internal Server Error

    500 Internal Server Errorが出ます。 サーバ:CentOS6.4 サーバ側の文字コード:UTF-8 perlのパス:/usr/bin/perl index.cgiの文字コード:LF (サーバ上で直接作成) index.cgiのパーミッション:777 (パーミッションの問題を避けるためわざと、777に設定) ここで、サーバ上で直接実行 perl /var/www/html/index.cgi すると、正しく処理の結果が返ってきてエラーは出ません。 しかし、クライアントのブラウザでindex.cgiにアクセスすると、500 Internal Server Errorが出ます。 なお、index.cgiを設置するディレクトリはApacheで以下のように設定しcgiスクリプトを有効にしています。 <Directory “/var/www/html”> Options FollowSymLinks ExecCGI </Directory> AddHandler cgi-script .cgi .pl #AddDefaultCharset UTF-8 ******************************************************* 【/var/www/html/index.cgi】 #!/usr/bin/perl print "Content-type: text/html"; print "<html>"; print "<body>"; print "<p>"; print "CGI"; print "</p>"; print "</body>"; print "</html>"; スクリプトの文法に問題があれば、サーバ上で直接実行させた時点でエラーを吐きそうですし、 パーミッションは777にしていますし、Apacheの設定もcgiを有効にしているので 他に500 Internal Server Errorが出る原因が掴めません。 Apacheの設定で、#AddDefaultCharset UTF-8 として文字セットを無効にした場合は CGIスクリプトの方で何か追加してやらないと、文字化け以前の問題で必ず500 Internal Server Errorを吐くんですかね? ご指導のほどよろしくお願い致します。

    • ベストアンサー
    • CGI
  • サクラのレンタルサーバーです。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 どちらでもいいそうです。験しに変えましたが状況変わらず。 何か気が付いたことがあれば教えてください

    • ベストアンサー
    • CGI
  • WEB拍手patipatiのパーミッションについて

    WEB拍手のフリーソフトpatipati(http://www.gnbnet.com/cgi/?mode=mail)をbiglobeサーバに設置しようとしています。 index.cgi、view.cgiのPerlは/usr/local/bin/perlに変更しました。 次にパーミッションの変更をしようとしたのですが、DL元のサイトには777、666に変更するところがあるのですが、 この通りにすると500エラーが出てしまいます。 調べてみたのですが、biglobeでは705と755しか使えないようです。 使えるようにするには777や666をどのように設定すればよいでしょうか? biglobeでこのソフトを使ってる人が居るので、設置はできると思います。 エラーはパーミッションが原因だと思ってますが、他にも原因と思われることがありましたら、教えていただけると助かります。

  • DebianのApache(掲示板)CGIエラー 500エラー

    debianでkent-webさんのASKA BBSを使いたいんですが うまくいきません http://www.kent-web.com/bbs/aska.html aska BBS rootで/lib/usr/cgi-binに移動してvi test.cgi ------------------------------- #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; -------------- を試して http://192.168.1.12/cgi-bin/test.cgi は動くんですが which perl /usr/bin/perlです パスはあっています 本題のBBSをデスクトップにDLし tar -xvzf 解凍をし rootで/usr/lib/cgi-bin/に aska.cgi askalog.dat jcode.plを置き パーミッションをhttp://www.kent-web.com/bbs/aska.htmlにあわせて わらかないのでsuEXECサーバ CGIWrapサーバ用のパーミッションと一般サーバを両方ためしてみたんですが http://192.168.1.12/cgi-bin/aska.cgi?mode=checkで試したんですが 500エラーがてしまいます ちなみにaska/aska.cgi?mode=check のaskaフォルダは作らず cgi-bin/aska.cgiです かわらなそうなので http.confの設定は <IfModule mod_alias.c> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ # # "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory /usr/lib/cgi-bin/> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> </IfModule> AddHandler cgi-script .cgi .sh .pl ちゃんと#を外してあります それとほかの質問者の方を参考にしたんですが mod_aliasなんたら モジュールとかよくわからず apt-cache search module cgiなどといろいろ探したんですが無く これのperlのパスをわざと間違えさせてやっると500でエラーが出るってことはちゃんと動いてるはずだと思うんですが ちゃんともどすとhelloと表示されます 間違えーー>#!/hogehoge/hogehge/perl 元-->#!/usr/bin/perl #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; それと疑いがあるのが aska.cgiのパスはちゃんと/usr/bin/local/perlを whichでみたperlのパス /usr/bin/perlに設定したんですが 動かないみたいです もしかしてgnome-text-editorなどviで開くと文字コードがかわったりしてだめなんでしょうか? もう思い当たる節がありません どなたか詳しい方教えてくださいお願いします

  • パーミッション どちらでも?

    CGIを設置するときに、レンタルサーバーの指定で 「パーミッションは 755 でも 705 どちらでもいいです」 また、Perl のコマンドパスも 「/usr/bin/perl または /usr/local/bin/perl」 というふうにあります。 この意味なのですが、例えば変更する箇所が2箇所あった場合 ・755 755 ・705 705 ・755 705 この3パターンどれでもいいってことでしょうか? 実際には2箇所ではないのでもっとパターンがありますが・・。

  • PERL 宣言文 -wについて

    Perl初心者のWEBサーバエンジニアです。 サーバの移行に伴ってCGIファイルが動作していないため、ご相談になります。 【サーバ環境】 perl実行パス      /usr/local/bin/perl シンボリックリンク   /usr/bin/perl => /usr/local/bin/perl ソース記述       #!/usr/bin/perl ヴァージョン      5.8.5 perl実行環境      http://△△△.jp/cgi-bin/ ※apacheのスクリプトエイリアス指定 options +ExecCGI -Include SetHandler cgi-script 上記の環境で、cgiファイルが500internalサーバエラーになる現象が発生しています。 ファイルは以前動作したサーバから引っ張ってきました。 原因を探っていたのですが、cgiファイルのソース記述を #!/usr/bin/perl -w と記述を変更すると正常に動作しました。 -w について 【1度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力します。実際にはもっとたくさんの種類のチェックをするようです。】 と言う事はわかりましたが、いままで、-wなしで動作していたので、-wなしで動くよう、perlの設定を変更したいとかんがえております。 なにぶんPERL初心者ですので、同様の事象で知見がある方、ご教授を宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • レンタルCGIが動きません。アドバイスお願いします!

    CGI初心者です。 レンタルのCGIをテキストモードでCGI可のサーバーにアップしました。 Internal Server Errorと表示され、動いてくれません。 パスは#!/usr/bin/perl パーミッションはスクリプトが755でその他が644です。 何でも結構ですのでアドバイスをお願い致します。

    • ベストアンサー
    • CGI

専門家に質問してみよう