「apache」でカウンターを動かす。 [Apache]
■CGIで動かすカウンターを用意する。
|
インターネットで検索し以下のサイト様のカウンターを使わせていただくことにしました。ありがとうございました。
http://www.kent-web.com/count/dream.html
まずはダウンロードしましたが、「wget」コマンドで少し手間取ってしまいました。
「wget http://www.kent-web.com/cgi/downld/downld.cgi?id=dream」を実施するとダインロードされるファイルは「downld.cgi?id=dream」となってしまっています。
確認もせずに捨てていましたが、実はこれがファイルでした……。これを「mv」コマンドで変名しても良いのでしょうが、「-O」オプションを付けて初めからファイル名を付けることが出来ました。
次にファイルを「unzip」コマンドで解凍し出来上がった「dream」ディレクトリを説明にあるとおり「public_html」に設置します。
といっても、「public_html」というディレクトリはありません。調べてみると、
レンタルサーバーでホームページファイルをアップロードする場所は、ファイルマネージャーの「public_html」というフォルダになります。
また、この「public_html」は「www」のフォルダとなっていることもあります。
とのこと。つまり文字通りの意味で、公開するHTMLファイルを入れるディレクトリで一番浅いディレクトリというところでしょうかね。当方の場合は「html」でしょう。
ダウンロードして解凍したディレクトリを指定の場所に設置し、各ファイルの所有権を指定通りに設定します。
※当方は今回間違って変更している部分があります。後半で気がつき修正しています。
次に各「cgi」ファイルに「#!/usr/local/bin/perl」を記入(当方と同じだったので変更無し)するためにファイルを「vi」コマンドで開いたのですが、英数字文字以外は全部文字化けしておりコメントアウトしてある説明文は全く読めません。
しかし、いじるところは英数字のところばかりなので問題なく変更。
「apache」を再起動し、説明にあるとおりブラウザでチェックモードの「check.cgi」に直接アクセスするも「Internal Server Error」発生。
「パーミッション」を「755」にするも変化なし。
先日調べた「Internal Server Error」発生の原因リストには、
1.ディレクトリのパーミッション
2.CGI ファイルのパーミッション
3.Perl のパスの違い
4.改行コード
5.UTF-8 の BOMコード
6.文法エラー
7.「モジュール」の不足
8..htaccess の問題
9.Perl のバージョン
これらがあるようなので、当てはまるところを修正していきます。
問題なさそう→1.3.6.9
問題ありそう→4
わからない→5.7.8
ということで、改行コードについて調べてみました。
Unix=LF
Windows=CR+LF
Mac=CR
うーん。よく見かける情報ですが、コピペとか手動でいい加減に修正して其の場凌ぎで対処してきたから全然わかりませんねぇ。
でもまぁつまり「check.cgi」の現状の改行コードを調べて、それが「Unix(CentOS)」用の「LF」であれば良いと言うことですよね。
現状の改行コードを調べてみます。
「vi」コマンドで「check.cgi」を開き、「set fileformat?」とついでに「set fileencoding?」コマンドで調べてみると「fileformat=dos」と「fileencoding=latin1」表示されました。
これはつまりWindowsで「CR+LF」ということですよね。なるほど、こりゃだめです。
***********************下記 禁止事項***********************
ならば、改行コードを「LF」にエンコーディングを「utf-8」にしてやれば良いはずです。
変更後、「apache」を再起動して再度アクセスするも「Internal Server Error」発生。
実はここではまりました。
「vi」コマンドで「set:fileformat=unix」を実施したところ、「check.cgi」にブラウザで直接アクセスしたところ、文字化けは起こすものの「Internal Server Error」が出なくなりました。
じゃぁ、あとは文字化けだけだと、「set:fileencoding=utf-8」を初め色々変えてみたのですが、文字化けは直りません。
調べを進めたところ「nkf」コマンドという文字コートや改行コードを変換してくれるコマンドが存在しました。
「vi」で上手くいかないので「nkf」で変換したところ、やはり文字化けは直りませんでした。
仕方ないので、最初からやり直そうとスナップショットを遡って今度はまず「nkf」コマンドで改行コードと文字コードを変更しました。
「nkf -w -Lu --overwrite check.cgi」そして「apache」を再起動させアクセスすると問題なく動いてくれました。文字化けも直っていました。
その後「vi」のコマンドも使用してみたのですが、はじめに「vi」で「set:fileencoding=」を行ってしまうと、あとで「nkf」を使っても文字化けが直らない現象が起きることが解りました。(多分ですが。自分の環境だけかも。)
つまり、「vi」コマンドでは文字、改行コードは変更せず「nkf」コマンドだけインストールして変更してやれば良いことになります。
大変時間をかけてしまいました。
---追記--- 「vi」の「set: fileformat=unix」は有効でした。実行することにより「Internal Server Error」がなくなり文字化けではあるけど正しいページが表示されます。
次に「文字コード」を直そうと「set:fileencoding=utf-8」を使用するのが間違いとわかりました。(utf-8以外でもだめ)
「文字コード」の修正には「nkf -w --overwrite check.cgi」とします。その前に「set:fileencoding=utf-8」を実行してしまうと。「nkf -w --overwrite check.cgi」が効かなくなってしまうので注意です。(当方の場合では)
改行コード変更=「vi set:fileformat=unix」と「nkf -Lu --overwrite」有効
文字コード変更=「nkf -w --overwrite」有効
「vi」と「nkf」どちらも「改行」「文字」コードをいっぺんに変更できますが、1つずつ変更すると不具合の場合の原因が特定しやすくなると思います。
当方の理解度が低いための現象かも知れませんので悪しからず。
***********************上記 禁止事項***********************
次に「admin.cgi」を自信を持ってアクセスしたのですが、「Internal Server Error」でした。
サイトを巡りまくってようやく「perl-CGI」というモジュールが「掲示板」などのCGIに必要だという記述を見つけました。そして一応入れてみることにして、たまたま解決することができました。まだまだ駄目ですねぇ。
最後にHTMLファイルにカウンターを設置しちゃんと動作するか確認すべく、HTMLファイルに「<img src="dream/dream.cgi?id=index">」を記述し、「apache」の再起動後アクセスするも、テキストは表示されるもののカウンターは表示されず。
「admin.cgi」「check.cgi」という直接接続するCGIには問題なく接続ができるようになったので、気楽に構えていたのですがこれまたはまってしまいました。
結局はパーミッションの問題でした。しかも完全に自分が行った設定が間違いでした。 ディレクトリ「lib」がパーミッション「604」になっていたのです。(今回のびぼーろくの初めにちゃんと間違いが残っている!) 他のパーミッション変更と流れ作業的に行ったのが敗因ですね。お恥ずかしい限りです。
でこれを「707」とか「755」などに変更してカウンターが表示されるようになりました!
このレベルで長時間苦しんで情けない限りです。が、基本的には「パーミッション」「所有権」「モジュールの不足」がトラブルの原因だった。ということを知れたのは収穫でした。次回に生かせると尚良いのだけれど。
弊社は各ランクのブランド商品満載し、ブランド通販店で一番信用のある店なので!。
品質はこちらが間違いなく保証します。
https://www.ginzaoff.com/watch/product-24889.html
■取扱ブランド ロレックス時計コピー、カルティエ時計コピー、IWC時計コピー、
ブライトリング時計コピー、パネライ時計コピー.
◆ スタイルが多い、品質がよい、価格が低い、実物写真!
◆ ご入金頂いてから最速4日、遅くとも7日程度でご指定場所へ発送出来る予定でございます
◆ 商品送料を無料にいたします
https://www.ginzaoff.com/bag/product-19348.html
◆信用第一、良い品質、低価格は 私達の勝ち残りの切り札です。
◆ 当社の商品は絶対の自信が御座います。
◇ N品質 シリアル付きも有り 付属品完備!
https://www.ginzaoff.com/bag/product-20103.html
◆ 必ずご満足頂ける品質の商品のみ販売しております。
◇ 品質を最大限本物と同等とする為に相応の材質にて製作している為です。
◆ 絶対に満足して頂ける品のみ皆様にお届け致します。
興味あれば、是非一度サイトをご覧になって下さい。
今後ともよろしくご愛顧くださいますよう、お願い申し上げます
https://www.ginzaoff.com/wallet/product-11462.html
お取り引きを開始させていただきたく思います。
詳細に関してはどうぞお気軽にご連絡ください。
by Marquislor (2019-09-18 22:36)
hello there and thank you for your info – I
have certainly picked up anything new from right here.
I did however expertise a few technical points using
this site, since I experienced to reload the website a lot of times previous to
I could get it to load correctly. I had been wondering if your web host is OK?
Not that I am complaining, but slow loading instances times will often affect your placement in google
and could damage your quality score if advertising and marketing with Adwords.
Anyway I'm adding this RSS to my email and could look out for
a lot more of your respective interesting content. Ensure that you update this again very soon.
by Millie (2020-02-07 01:56)