2025年 7月17日 3時05分
いろいろとHP構築のために作業してた中で、の、よもやま話。
90年代後半から2010年代半ばまで、自宅サーバを立ててHPを運営してたんだよね。
今回、こうしてまたHPを開設するために、あれやこれややっててさ、当時のことを思い出しちゃってねぇ。
判る人には判ると思うけれど、作ったHTMLファイルをサーバにアップするためのFTPソフトってのがあるんだけど。
まぁ、自宅サーバを立てたらファイルをアップするってことは必要なくなるんだけどさ、ホントにHPを作り始めた当初はね、契約したプロバイダが用意してくれたのHPスペースにファイルを送るのに必要になるからね。
今回久しぶりにFFFTPという定番のフリーソフトをダウンロードして・・・ そう、それで当時のこと思い出してね。
懐かしぃ~なぁ~ こんなことあんなこと、やったよなぁ~って、ちょっとセンチメンタルな気持ちになっちゃったんだよね。^_^;
そして今回ボクが借りたレンタルサーバは
XServerだ。
ここは、3つのプログラミング言語(Perl,PHP,Python)が使えてねぇ、だったら利用するかどうかは別にして、一応使えるように設定したくなるじゃんさ。
そのためにあれこれしてたら、なんかエラーになっちゃってすんなり動かんくてねぇ・・・
そうなるとサーバの中の設定ファイルとか、ファイル自体をバイナリで確認・・・ とかしちゃった方がてっとり早いんで、TeraTermってこれまた昔ながらの定番フリーソフトがあってね。
そいつもダウンロードしてあれこれやってたら、二十歳ちょいくらいの頃もこんなことやってたなってね。^_^;
でさぁ~・・・ 懐かしいな,楽しいなってのは、ここまでで!
もぉ~ アッタマくることあってね。
こっからは、ちと備忘録的な内容に!
XServerって、使われてるOSはLinuxでね、ボクのローカルの作業PCのOSはWindowsなのだ。
OSが違うPCでおなじファイルを扱うには、その扱うファイルでおなじ文字コードを揃えんと文字化けしちまう。
サーバ側はUTF-8って文字コードを使ってるんで、それに合わせにゃいかんわけだ。
ボクは普段からテキストファイルを扱う場合、フリーソフトのTerapadってエディタの愛用者。
こいつをずぅ~っと20年以上使ってるし、今、これを書いてるのもTerapadなのだよ。
このエディタ・・・ って、これに限らず最近のエディタは・・・ Windows付属のメモ帳もだけど保存する時に文字コードも指定して保存できるんだよね。
だからUTF-8で保存して・・・ ファイルをサーバにアップして・・・ パーミッションも変更して・・・ まぁ、PerlをCGIとして動かす設定はバッチシ行ったわけだ。
ところが・・・ HTTP EORROR 500でサンプルプログラムが動かないっ! まったく動かないっ!
結論から言っちまうと、ちゃんと文字コード UTF-8で保存されていなかったのだよ。
このUTF-8って、普通のUTF-8とBOM付きのUTF-8の2種類あってね、ボクはこのBOM付きのUTF-8で保存してたんだよね。
このBOMって、たしかバイトオーダーなんちゃらとか言ってね。
UTF-8ってなんかわからんが、Windowsアプリの中にはUTF-8という文字コードだよって正しく認識されんのがあったりなかったり。
だからファイルの頭(ファイル名の頭じゃなくて、ファイルそのものは0,1の数値の羅列『バイナリデータ』で作られてる)に認識フラグみたいのを付けてね、確実に認識するようにしてるんだよね。
違ったかな? ^_^;
まぁ、その認識フラグみたいなのがあるのがBOM付きUTF-8、またLinuxでは認識されたりされなかったりってことはないから付いてないUTF-8ってのが2種類ある理由だった感じかな。
そしてLinuxでは当然ディフォルトで・・・ というか、HPを作成する上で? HTMLで?
原則というか、基本BOMなしUTF-8を使おうねってお約束みたいになっているんだよね。
なぜなら、その認識フラグみたいなのが邪魔して今回のようにCGIとか正しく認識されないってことが起き易いから!
今回、動かなかった理由がまさしくこれなんだけど。
またそのボクが愛用してるTerapad自体、その両方で保存することができる。
保存する時にメニューから『文字/改行コード指定保存』ってのがあってさ、UTF-8,UTF-8Nって選択肢があるんだ。
そんでTerapadの下部右側を一目見れば、どんな文字コードか改行コードか・・・ わかるようになってるんだよ。
だけどね!
[UTF-8],[UTF-8N] ← これを見て、どっちがBOM付きでBOMなしなのか・・・ わかる?
ボク自身、忘れてたのが一番いけないんだけれどさ、これってね・・・
UTF-8BOM付き
UTF-8NBOMなし
直感的にどうよ?
わかりづらくね?
もっかい書くけれど、こんなことすら覚えちゃいなかったボク自身が悪いんだけれどねぇ~・・・
なんか無性にハラ立っちゃってさ・・・ だって、これで3日くらい引っかかってたんだから! ーへーメ
本来ならばUTF-8Nで保存しなきゃいけないところを、UTF-8で保存しててさ。
Terapadの下部右側を目視で確認しても UTF-8 だから、「よし! BOMなしになってるぞ」って思いこんじゃってるわけで。
それで動かないわけだから、もうどこも設定とか不備ないのになんで動かんのよぉ~・・・ って、1人でイライラしちゃってたよ・・・
(´Д`)ハァ…
あと最後の最後にPythonのことも・・・
こいつもさ、XServerじゃCGIとして動くらしいのだが拡張子としては、Pythonって ファイル名.py ってのがデフォルト・・・って言っていいのかな?
またPerl自体も ファイル名.pl ってのが基本デフォだとボクは思っているんだけれどさ。
CGIのコードってことで、昔っから ファイル名.cgi ってのも使われている。
またこれ自体は、その・・・ サーバ側の設定ファイルで、この拡張子だったらCGIのコードだよって指定できるんだよね。
でもPythonは基本 ファイル名 .py だからって拡張子を .py としてしてファイル保存して試してたんだけど全然動かんくてねぇ・・・
これでまただんだんイラついてきちゃって。^_^;
Perlの時同様、またBOM付きファイルでアップしちゃってんじゃないか・・・ とか、いろいろ確認してねぇ。
最後の最後で、まさかな・・・ と、思いつつ、Pythonのコードファイルの拡張子を .py → .cgi に変更したら一発でウソのように動いてくれて!
やったーって同時に、なんかガックシきちゃったよ! ^_^;