#1041(須々木氏)の書き込みを引用します: パーミッションは合っていると思います。 >>あと、Perlのパスは合っていますか? >telnetで実行すればスクリプトが動くということは、Perlのパスはあっている >と思いますが、いかがでしょうか。 >一応、find / -name perl -printで探しました。 じゃあ、O・Kですね。 >持っている大量の「サーバー本」がどれもちっとも役に立たず。これから本屋に >捜しに行きます。 素人が調べてみたので、合っているかはわかんないですけど、 .htaccessファイルが、なんか違うような気がするんですが・・・ Options FollowSymLinks Indexes Includes AddType text/x-server-parsed-html .html AddType text/x-server-parsed-html .htm AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl この中の「Options」に「Options ExecCGI Includes」 がありませんが、不要なのかな? (CGIとSSIを実行可能にするオプション) ただし、定かではないっすよ念のため。あくまで素人判断ですから・・・
#1040(わかやま神氏)の書き込みを引用します: >ほえっ?タグのままですか? >普通はスプリクトの内容に書き変わるんだけどなぁ。 >え〜と、なんかおかしいな。 一応、パーミッションは total 25 -rw----r-- 1 root wheel 1277 Jul 17 02:28 0.gif -rw----r-- 1 root wheel 1259 Jul 17 02:28 1.gif -rw----r-- 1 root wheel 1268 Jul 17 02:28 2.gif -rw----r-- 1 root wheel 1274 Jul 17 02:28 3.gif -rw----r-- 1 root wheel 1271 Jul 17 02:29 4.gif -rw----r-- 1 root wheel 1263 Jul 17 02:29 5.gif -rw----r-- 1 root wheel 1269 Jul 17 02:29 6.gif -rw----r-- 1 root wheel 1258 Jul 17 02:29 7.gif -rw----r-- 1 root wheel 1278 Jul 17 02:29 8.gif -rw----r-- 1 root wheel 1276 Jul 17 02:29 9.gif -rw-r----- 1 root wheel 190 Jul 17 02:29 count_g1.htm -rw----rw- 1 root wheel 2 Jul 17 12:53 count_g1.log -rwx---r-x 1 root wheel 666 Jul 17 02:44 count_g1.pl -rw-r--r-- 1 root wheel 272 Apr 4 22:32 printenv -rwxr-xr-x 1 root wheel 757 Apr 4 22:32 test-cgi といった感じです。 >まず、rootの下に/usr/があるのですか? >その下に/pkg/libexec/cgi-bin/となっているのかな? cd /usr/pkg/libexec/cgi-bin で目的地に到達いたします。 >こんな感じ? > root > │ > └─/usr/ > │ > └─/pkg/ > │ > └─/libexec/ > │ > └─/cgi-bin/ > >そうだとしたら、 >パスの指定おかしくないですか? ><!--#exec cmd=/usr/pkg/libexec/cgi-bin/count_g1.pl--> > >となるんじゃない? >(合っているかは分からないですが) その様にしております。 >あと、Perlのパスは合っていますか? telnetで実行すればスクリプトが動くということは、Perlのパスはあっている と思いますが、いかがでしょうか。 一応、find / -name perl -printで探しました。 >Apacheはわからんです。 >バージョンが上がったら、何か変わったとか聞いた様な気もするけど。 持っている大量の「サーバー本」がどれもちっとも役に立たず。これから本屋に 捜しに行きます。
#1039(須々木氏)の書き込みを引用します: >>表示されたHTML文書(ソース)はどうなっていますか? >>(特にカウンタの表示する部分) >なにも表示されていない状態です。 >そこで「ページのソース」を見ると斜体で、 ><!--#exec cmd=../cgi-bin/count_g1.pl--> >と表示されています。 ほえっ?タグのままですか? 普通はスプリクトの内容に書き変わるんだけどなぁ。 え〜と、なんかおかしいな。 まず、rootの下に/usr/があるのですか? その下に/pkg/libexec/cgi-bin/となっているのかな? こんな感じ? root │ └─/usr/ │ └─/pkg/ │ └─/libexec/ │ └─/cgi-bin/ そうだとしたら、 パスの指定おかしくないですか? <!--#exec cmd=/usr/pkg/libexec/cgi-bin/count_g1.pl--> となるんじゃない? (合っているかは分からないですが) あと、Perlのパスは合っていますか? >何故こんなに苦しむことになるのか、、、? >前にやったときはもっと簡単にできたように思うのですが、、、。 >Apacheのバージョンが上がった為?のような気が、、。 Apacheはわからんです。 バージョンが上がったら、何か変わったとか聞いた様な気もするけど。
#1038(わかやま神氏)の書き込みを引用します: >表示されたHTML文書(ソース)はどうなっていますか? >(特にカウンタの表示する部分) なにも表示されていない状態です。 そこで「ページのソース」を見ると斜体で、 <!--#exec cmd=../cgi-bin/count_g1.pl--> と表示されています。 >更新すると、変わっていきますか? >変わって(増えて)行く様なら、GIF画像のパス指定などの問題じゃないかな。 telnetで入って、./count_g1.plとするとカウントは増えていきます。 しかしながら、ブラウザで見ている状態でリロードをいくら繰り返しても、 カウンターは増えません。 (COUNT_G1.LOGの内容で確認) >.htaccessファイルに間違いはないように見えますが・・・ ちなみに、現時点では/usr/pkg/libexec/cgi-bin/をあきらめて /home/hogehoge/cgi-bin/を作り、そこにスクリプトと数字画像データを 一緒に入れています。つまり同じ階層に両方とも入れています。 何故こんなに苦しむことになるのか、、、? 前にやったときはもっと簡単にできたように思うのですが、、、。 Apacheのバージョンが上がった為?のような気が、、。
#1037(須々木氏)の書き込みを引用します: ***省略 >と言った感じで設定し、telnetで入って直接count_g1.plを実行すると、 >無事動作もしますし、counter_g1.logも快調に増えていくのですが、 >/home/hogehoge >に置きました、count_g1.htmが「いらっしゃいませ」のみ表示されて >カウンターが表示されないのです。 > >不思議なことにエラーログも出ません。 表示されたHTML文書(ソース)はどうなっていますか? (特にカウンタの表示する部分) 更新すると、変わっていきますか? 変わって(増えて)行く様なら、GIF画像のパス指定などの問題じゃないかな。 .htaccessファイルに間違いはないように見えますが・・・ >ちなみに皆さんは、cgiをどこに置いて使っていらっしゃるのでしょう? 割と多いのが「cgi-bin」の中とか・・・ 指定のないサイトもありますよ。もちろん。
購入させていただきました本を頼りに、NetBSD+Apache1.3.11でホームページ を立ちあげました。 みんなで利用できるようにと httpd.confには # This should be changed to whatever you set DocumentRoot to. # <directory "/usr/pkg/share/httpd/htdocs"> # # This may also be "None", "All", or any combination of "Indexes", # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews". # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # Options Indexes FollowSymLinks MultiViews # # This controls which options the .htaccess files in directories can # override. Can also be "All", or any combination of "Options", "FileInfo", # "AuthConfig", and "Limit" # AllowOverride All # # Controls who can get stuff from this server. # Order allow,deny Allow from all </directory> ・・中略・・ ScriptAlias /cgi-bin/ "/usr/pkg/libexec/cgi-bin/" # # "/usr/pkg/libexec/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <directory "/usr/pkg/libexec/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </directory> と言った感じで設定し、telnetで入って直接count_g1.plを実行すると、 無事動作もしますし、counter_g1.logも快調に増えていくのですが、 /home/hogehoge に置きました、count_g1.htmが「いらっしゃいませ」のみ表示されて カウンターが表示されないのです。 不思議なことにエラーログも出ません。 先の設定で、/cgi-bin/は/usr/pkg/libexec/cgi-bin/のAliasになって いるはずなのですが、、、。 ちなみに、.htaccessファイルは/home/hogehoge/public_htmlの中にあって Options FollowSymLinks Indexes Includes AddType text/x-server-parsed-html .html AddType text/x-server-parsed-html .htm AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl という設定になっています。 何がいけないのでしょうか? ちなみに皆さんは、cgiをどこに置いて使っていらっしゃるのでしょう?
#1035(ちゃちゃ氏)の書き込みを引用します: >えへへ あたしも超初心者です (^-^* いや、ご謙遜・・・ >各ファイルのパーミッションですが 他のCGIは問題なく動いてるんです。 つ〜事は、パーミッションは問題ないって事でんな。 そのCGIは「#exec cmd」で呼び出しているんですか? ちにみに、どんなCGIでしょうか? (flock関数は使われていますか?) >LogをFTPでもってきても何もかかれてないんです。??? うぅ!!やっぱ「access1.pl」の問題でしゅね。 >SSIが使えるとHPに書いてあったのですが 実際SSIはつけてないので >カウンタを置いて見たいと思います。 そうしてみて下さい。 上手く動いたら、スプリクトの「printf」(表示する所)をコメントにして、 ブラウザから何度か「更新」後、FTPでlogファイルの内容が変わっているか確認して下さい。 (「access1.pl」と同じ様に実行するが、表示はしない・・という環境を作ってみるんです)
#1034(わかやま神氏)の書き込みを引用します: >>レスありがとうございます。 >いえいえ、私も初心者ですから(汗) えへへ あたしも超初心者です (^-^* >>スプリクトをアップする場所はどこでもいいようなので >>同じフォルダにいれましたが 絶対パスでも試してみましたが反応は同じです。 >いいっすね〜!!アップ場所がどこでもいいなんて・・・じゃなく、 >絶対パスでも反応しないとなると・・・ >まず、パス指定がURLの場合も考えられますね。 >各ファイルのパーミッションも本誌と異なる場合があります。 URLにもしてみたんですよね・・・ 各ファイルのパーミッションですが 他のCGIは問題なく動いてるんです。 >>>「#exec cmdが使えない」ってのもありますし。 >>その場合 何と書けばいいでしょうか? >「#include virtual」って書けばいいです。 <!--#include virtual="./access1.pl"--> と URLと両方ためしてみたんですが LogをFTPでもってきても何もかかれてないんです。??? 実は他サーバーで 設置成功していて・・・ 1年以上使わせて頂いてました。(^-^;; 今回使用したい サーバーは今月からHP異動のためで・・・・ Perlのバージョンさえ まだ未確認で・・・・ 現在 Mailにて問い合わせ中だったりします。 SSIが使えるとHPに書いてあったのですが 実際SSIはつけてないので カウンタを置いて見たいと思います。
#1033(ちゃちゃ氏)の書き込みを引用します: >レスありがとうございます。 いえいえ、私も初心者ですから(汗) >スプリクトをアップする場所はどこでもいいようなので >同じフォルダにいれましたが 絶対パスでも試してみましたが反応は同じです。 いいっすね〜!!アップ場所がどこでもいいなんて・・・じゃなく、 絶対パスでも反応しないとなると・・・ まず、パス指定がURLの場合も考えられますね。 各ファイルのパーミッションも本誌と異なる場合があります。 >>「#exec cmdが使えない」ってのもありますし。 >その場合 何と書けばいいでしょうか? 「#include virtual」って書けばいいです。 ただ、「#include」は指定している内容をそのまま出力する命令ですので、 どんな動作をするか判らないです。 >>あと、Perlのパス指定なども確認してみて下さい。 >これは確認済みです。 じゃあ、Perlのパス指定はO・Kですね。 >Logファイルには 何も書き込まれません。 という事は、「access1.pl」が上手く動作していない状態ですね。 まず「access1.pl」が正常に動作するよう考えましょうか? ちゃちゃさんのチャレンジスピリットがへなへなと崩壊してしまう気がするんですが、あえて書かせてもらいます。 SSI併用のCGIアクセスログは、かなり癖があるようで、 過去に何人かの方が挑戦されましたが上手く行かない場合が多いみたいです。 私もその一人ですが・・・ 私の場合「access1.pl」を呼び出す部分にエラーが出ます。 (「#exec cmd」が使えないので「#include virtual」で呼び出しています) が、logは記録されているので不思議なんです。 (結局のところ使っていないんです) あ、Perlのバージョンはどれくらいでしょうか? 古いPerlはflock関数がサポートされていませんので、 うまく行かない場合があります。 SSIのテキストカウンタなどでlogファイルが書き込めるか確認してみたらいかがですか?
レスありがとうございます。 #1032(わかやま神氏)の書き込みを引用します: >スプリクトをアップする場所は決まっていますか? >決まっている場合、スプリクトの呼び出し文が絶対パス指定の可能性もあります。 スプリクトをアップする場所はどこでもいいようなので 同じフォルダにいれましたが 絶対パスでも試してみましたが反応は同じです。 >「#exec cmdが使えない」ってのもありますし。 その場合 何と書けばいいでしょうか? >あと、Perlのパス指定なども確認してみて下さい。 これは確認済みです。 >それから、logファイルになにか書き込まれていますか? >(Kinetには何も書かれてなかったから詳しくは分からないです) Logファイルには 何も書き込まれません。 よろしくお願いします
#1031(ちゃちゃ氏)の書き込みを引用します: >ログをとりたいページに<!--#exec cmd="./access1.pl"-->と書いて >jcode.pl access1.pl logview1.cgiのパーミッションを755に >access1.logのパーミッションを 666に変えてログをとりたいページに >行っても アクセスログは 表示されません。 >エラーは出てないのですが どうしたら表示されますか? スプリクトをアップする場所は決まっていますか? 決まっている場合、スプリクトの呼び出し文が絶対パス指定の可能性もあります。 「#exec cmdが使えない」ってのもありますし。 あと、Perlのパス指定なども確認してみて下さい。 それから、logファイルになにか書き込まれていますか? (Kinetには何も書かれてなかったから詳しくは分からないです)
20. CGIアクセスログ(SSI併用)をDLさせていただいて kinetにつけてみました。 ログをとりたいページに<!--#exec cmd="./access1.pl"-->と書いて jcode.pl access1.pl logview1.cgiのパーミッションを755に access1.logのパーミッションを 666に変えてログをとりたいページに 行っても アクセスログは 表示されません。 エラーは出てないのですが どうしたら表示されますか?
なるほど・・・できました^^ ありがとうございました。
#1028(モモのすけ氏)の書き込みを引用します: >月によってメッセージを変更するスクリプトで >文字の色やサイズを変更するのはどこをどう書き加えたらいいんでしょうか? >"#COCOCO"の色に変更したいのですが・・・あとサイズも2あたりに・・・ >おしえてください>< monmes.htmとmonmes.plの事でしょうね? (本誌96ページ:11−4−2) 簡単に済ませるなら、monmes.htmを改造します。 改造はスプリクトの呼び出し文のみです。 <font size=2><font color = "#C0C0C0"><!--#exec cmd="./monmes.pl"--></font></font> 赤文字が変更部分です。 単なるHTML文書で考えれば <font size=2><font color = "#C0C0C0">こんにちは</font></font> となります。 イメージ的に見れば、 こんには となります。 上の例は、表示される文字をすべてフォントタグで囲んでいるのと同じです。 部分的に色・サイズを変更する場合はスプリクトの方を改造しないとだめですが・・・
月によってメッセージを変更するスクリプトで 文字の色やサイズを変更するのはどこをどう書き加えたらいいんでしょうか? "#COCOCO"の色に変更したいのですが・・・あとサイズも2あたりに・・・ おしえてください><
#1026(ちゃっぴー氏)の書き込みを引用します: >CGI、SSI初心者です。 >初めて使ってみたのですが、どうも「アクセスログをオープンできません」 >になるんです。 >パーミッションの変更もちゃんとしたつもりなんですけど >どうしてなんでしょう? >転送もテキストモードでしてるんですけどね。 >誰か教えてください。 「ログファイル」その物がないとか・・・ (アップしていない・・・なんて事ないですよね) パーミッションの変更値はサーバーによって多少変わります。
CGI、SSI初心者です。 初めて使ってみたのですが、どうも「アクセスログをオープンできません」 になるんです。 パーミッションの変更もちゃんとしたつもりなんですけど どうしてなんでしょう? 転送もテキストモードでしてるんですけどね。 誰か教えてください。
#1024(スミコ氏)の書き込みを引用します: >logview3.cgiのlocaltimeのところに「+ 15 * 60 * 60」を足してみたら >うまくできました。CGIに暗いのでよくわかりませんが、ログをつくるファイルの >ほうは現地時間を取得しているので15時間の差が出たのではないかと思います。 あ、そうか。 logview3.cgiにもあったんだ!!申し訳ないm(__)m ちなみにlogview3.cgiの部分も ($sec,$min,$hour,$day,$mon,$year,$wday) = gmtime($t + 9 * 60 * 60); としたら上手く行くと思いますよ。
#1023(わかやま神氏)の書き込みを引用します: > ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t); を > ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t + 9 * 60 * 60); >として下さい。(黄色が該当行で赤色が追加部分です) > >gmtime関数はグリニッジ標準時(世界標準時)を取得しますが、日本とは9時間(32400秒) >のずれがあるはず。 >$tの後ろの「+ 9 * 60 * 60」でグリニッジ標準時と日本標準時の9時間(32400秒)の >時差を加算修正しています。 ご回答下さってありがとうございます。上記のようにしましたが、変わらなかったので、 logview3.cgiのlocaltimeのところに「+ 15 * 60 * 60」を足してみたら うまくできました。CGIに暗いのでよくわかりませんが、ログをつくるファイルの ほうは現地時間を取得しているので15時間の差が出たのではないかと思います。 ご助力ありがとうございました(*^o^*)。
#1022(スミコ氏)の書き込みを引用します: >はじめまして。アクセスログのCGI版を使っているのですが、時刻が外国 >サーバのため15時間遅れてしまいます。どのように書き足したらよいの >でしょうか?どうかお教えください。よろしくお願いします。 access3.cgiの中に時間表記を作成するサブルーチンがあります。 sub gmt_date { #HTTPプロトコルで定義された標準的な時間表記を作る local($t) = @_; @wdays = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); @month = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t); return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT", $wdays[$wday], $day, $month[$mon], $year+1900, $hour, $min, $sec); } この中の ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t); を ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t + 9 * 60 * 60); として下さい。(黄色が該当行で赤色が追加部分です) 少々うんちくをば・・・ (15時間のずれって、なんかおかしい様な気がしますが・・・) gmtime関数はグリニッジ標準時(世界標準時)を取得しますが、日本とは9時間(32400秒)のずれがあるはず。 $tの後ろの「+ 9 * 60 * 60」でグリニッジ標準時と日本標準時の9時間(32400秒)の時差を加算修正しています。 時間の誤差分の指定は秒で行って下さい。
[トップページに戻る] | 管理人 : キャメル |