CGIで〝入力して表示する〟ができた
初めてのCGI「(いつか)人工無能(になるかもしれない)BonoBOROT」が少し進歩した。テキストの表示だけから環境変数の表示、そして小さな掲示板をつけた。大変有難いお手本は次の二つのページ。
・CGIその他-とほほのWWW入門
・掲示板をつくる-とほほのWWW入門
このページを見つけて飛びついてそのままコピーして使ってしまったが、本来は初歩から一通り学んだ上での復習や実践として扱うのがセオリーだろう。コピー&ペーストしただけで解らないと悩んでいても上達しない。
・Perl/CGI 300の技-とほほのWWW入門
ここを良く読むこととする。
フォームに入力したテキストをHTML上に表示する、ここが人工無能の第一歩だと思う。お手本にしたソースはその基本となるシンプルな作りで、これがしっかり身につけば目的に近づくのではないか。
・CGIその他-とほほのWWW入門
・掲示板をつくる-とほほのWWW入門
このページを見つけて飛びついてそのままコピーして使ってしまったが、本来は初歩から一通り学んだ上での復習や実践として扱うのがセオリーだろう。コピー&ペーストしただけで解らないと悩んでいても上達しない。
・Perl/CGI 300の技-とほほのWWW入門
ここを良く読むこととする。
フォームに入力したテキストをHTML上に表示する、ここが人工無能の第一歩だと思う。お手本にしたソースはその基本となるシンプルな作りで、これがしっかり身につけば目的に近づくのではないか。
初めて作ったCGIと文字コード
サーバーをロリポップにしたら故障してしまった人工無能の解決策としてイチから自分で作るという無謀なことを始めた。始めたと言ってもまだまだ全然足をつっこむことさえできていない。見様見真似で簡単なHTMLを出力することはできた。
初めての自作CGI「(いつか)人工無能(になるかもしれない)BonoBOROT」
たったこれだけでもやれ文字化けだのやれ500エラーだの大騒ぎである。ダブルクォーテーションの直前にバックスラッシュを入れることをよく忘れる。文字化けの原因やなぜ直せたかがよく分からない。定番のファイル送信時のASCIIモードの確認やファイル保存や改行などいろいろ試すうちに直るのだが、どのタイミングで直ったか把握できていない。よく観察する習慣をつけたい。
文字コードの扱いは本当に分からない。ファイルを開くとき、記述するとき、保存するとき、いつどこでどうなるのかさっぱり見当がつかない。コードの中で文字コードを指定してもその通りにならない。
CGIのコードの貼り付けはCarbonというサービスを利用した。内容はともかくソレっぽくなって嬉しい。このブログにはどうしてもコードを貼り付けられない。コードを張り付ける作法を色々試してみても403エラーになってしまう。
私が人工無能に拘る理由は、やはり昔の個人ホームページに付き物のイメージがあってどうしても設置したい。いま話題のAIとも違うところが面白い。それから、とんでもない身の程知らずだと十分承知の上での話になるが、設置した人工無能のCGIは一つのファイルで動いていてソースもあまり長くない、だから内容を理解すれば自分でも作れるのでは…などと生意気なことを考えている。ソースが短くまとまっているのは技術力による賜物だろうとは思う。その方面のことは疎いがそう思う。それでも何だかゼロから挑戦してみたいのだ。
【文字コードの疑問】UTF-8で保存されたファイルをUTF-8を基本とするエディタでUTF-8として開くときに「このファイルはUTF-8であるがShift-jisに変換できない文字を?として置き換えた」と表示される。さっぱり理解できない。辛い。

【追記】「Vimで文字コードを指定する」 ここを読んで少し知恵がついた。
初めての自作CGI「(いつか)人工無能(になるかもしれない)BonoBOROT」
たったこれだけでもやれ文字化けだのやれ500エラーだの大騒ぎである。ダブルクォーテーションの直前にバックスラッシュを入れることをよく忘れる。文字化けの原因やなぜ直せたかがよく分からない。定番のファイル送信時のASCIIモードの確認やファイル保存や改行などいろいろ試すうちに直るのだが、どのタイミングで直ったか把握できていない。よく観察する習慣をつけたい。
文字コードの扱いは本当に分からない。ファイルを開くとき、記述するとき、保存するとき、いつどこでどうなるのかさっぱり見当がつかない。コードの中で文字コードを指定してもその通りにならない。
私が人工無能に拘る理由は、やはり昔の個人ホームページに付き物のイメージがあってどうしても設置したい。いま話題のAIとも違うところが面白い。それから、とんでもない身の程知らずだと十分承知の上での話になるが、設置した人工無能のCGIは一つのファイルで動いていてソースもあまり長くない、だから内容を理解すれば自分でも作れるのでは…などと生意気なことを考えている。ソースが短くまとまっているのは技術力による賜物だろうとは思う。その方面のことは疎いがそう思う。それでも何だかゼロから挑戦してみたいのだ。
【文字コードの疑問】UTF-8で保存されたファイルをUTF-8を基本とするエディタでUTF-8として開くときに「このファイルはUTF-8であるがShift-jisに変換できない文字を?として置き換えた」と表示される。さっぱり理解できない。辛い。

【追記】「Vimで文字コードを指定する」 ここを読んで少し知恵がついた。
sendmailとGmail
sendmailが使えるかどうか。試しにここにコメントがあったときにメールで通知される設定をした。宛先はGmail。ところがメールが来ない。と思ったら迷惑メールに振り分けられていた。しかもMail Delivery Systemからのメッセージ付き。ここのドメインのsendmailが認証されていないのでエラーだという(英文)。受信できないというのにコメント内容は含まれている。コメントがあったことが判ればそれで用は足りるが、まあ、改善しておく。
このエラーを解決するにはSPFやDKIMの設定が必要と書かれている。難しそう。ドメインのDNS TXTレコードを更新する作業は経験あるが全然理解していないのだ。うーん…。これはやめて他の手段を試すことにした。
sendmail専用のメールアドレスを一つ作ることにした。それをGmailではない他のメールアプリで受信させる。スマホで通知を受け取りたいのでスマホのOutlookにPOP3で追加した。このブログからコメントを投稿。メールが届かない。sendmailの設定に間違いは無い。試しにメールフォームのCGIのcheck.cgiをインストールしてチェックするとパスは通っている。何度やっても届かない。またしても迷惑メールに振り分けられていた。なんだ、ケアレスミスか。迷惑メールから外して再度挑戦。コメント通知メールは届くがOutlookの受信通知が鳴らない。通知の許可はオンなのに鳴らない。Outlookが指定している〝デフォルトの通知音〟という音声ファイルが無くて(?)無音だった。音が鳴らなくても通知ドットくらい出てくれてもいいのにそれも表示されない。難しいなあ。通知音を指定しなおしてやっとコメント投稿のメールをスマホで通知させるという目的を果たせた。
簡単なことのようでいても色々躓いてしまう。
このエラーを解決するにはSPFやDKIMの設定が必要と書かれている。難しそう。ドメインのDNS TXTレコードを更新する作業は経験あるが全然理解していないのだ。うーん…。これはやめて他の手段を試すことにした。
sendmail専用のメールアドレスを一つ作ることにした。それをGmailではない他のメールアプリで受信させる。スマホで通知を受け取りたいのでスマホのOutlookにPOP3で追加した。このブログからコメントを投稿。メールが届かない。sendmailの設定に間違いは無い。試しにメールフォームのCGIのcheck.cgiをインストールしてチェックするとパスは通っている。何度やっても届かない。またしても迷惑メールに振り分けられていた。なんだ、ケアレスミスか。迷惑メールから外して再度挑戦。コメント通知メールは届くがOutlookの受信通知が鳴らない。通知の許可はオンなのに鳴らない。Outlookが指定している〝デフォルトの通知音〟という音声ファイルが無くて(?)無音だった。音が鳴らなくても通知ドットくらい出てくれてもいいのにそれも表示されない。難しいなあ。通知音を指定しなおしてやっとコメント投稿のメールをスマホで通知させるという目的を果たせた。
簡単なことのようでいても色々躓いてしまう。
ホームページとレンタルサーバ
このホームページをつくろうと思った切っ掛けはVDSLの終了に伴うものだった。プロバイダの契約変更のために契約内容を確認していたら個人ホームページ向けのサーバーレンタルオプションを見つけた。無料。無料ならということですぐに簡単なHTMLファイルをつくってアップしてみた。ちゃんと表示される。懐かしい!非常に懐かしい!!これに火がついてHTML手打ちの素朴な昔ながらのページを作りたくてうずうずした。胸がいっぱいになった。ふと、スマホで作れないか気になってFTPアプリやHTMLエディタアプリを検索するとスマホ向けにある。折しも機種変更で画面が大きくなったことだし…ということでスマホでホームページ作成を始めた。というのがそもそも。
慣れ親しんだSNSが不穏な様子もあるし個人ホームページがあっても面白いかもしれない。そこに根を張るのもいいかもしれない。そんな気分でこつこつやることに。内容がとくに思いつかず、とりあえず〝スマホで昔のホームページを再現する〟をコンセプトにした。ここに拍車がかかったのはインターネットアーカイブで昔のヤフージャパンを見て懐かしいホームページを目にしたことだった。

興奮した。やるしかない。テキストを表示して背景に壁紙を設定して中央ぞろえだのテーブルだのやるのが頗る楽しい。拙いながらも個人ホームページの形になった。
ここで再度、ホームページ作成に火が入る。私は手芸用の糸通しを若い頃からコレクションしている。最近はどこの店もだいたい同じ柄なので熱が冷めていた。ところがSNSで糸通しの話題がバズっていたのを目撃。手芸用品メーカーも一役買っている。そんなところから糸通しのページを作ることにした。そんなわけで「ぼのちょの巣穴」と「糸通しの小部屋」の誕生となった。
作っていくうちに欲が出てくる。プロバイダの無料サービスは100MBバイトまでしか借りられない。100GBでなく100メガバイト。すでに8MBを使っている。どこか有料のサーバを借りるか。サーバ借りるならドメインを取るか。どうする?サーバ借りると言っても知識の無い自分には良し悪しもわからない。古巣のロリポップとムームードメインで草鞋を脱ぐことにした。当初は「ドメインずっと無料」の高額プランの広告バナーに釣られたが年々のコストを計算してランクが一番低いコースをお試し替わりに契約した。ドメインは取得費用と更新費用に大きく開きがあって悩んだ。取得費用が数百円で済むのに更新費用が高かったりするのだ。取得費用は安くないが更新費用が控えめな〝.net〟を選んだ。
・ムームードメイン bonocho.net
.net 取得 1,848円
.net 1年更新 1,848円
・サーバ ロリポップ
エコノミープラン(120GB)
37か月 3,564円(1か月96円)
これがここの家賃。ロリポップの価格は今年2026年1月5日から値上げで、決済が4日だったので値上げ前の価格。容量が120GBもあれば御の字。すごい。データベースが使えないプランだけどこれで十分。1か月96円てタダ同然か。ありがたい。
慣れ親しんだSNSが不穏な様子もあるし個人ホームページがあっても面白いかもしれない。そこに根を張るのもいいかもしれない。そんな気分でこつこつやることに。内容がとくに思いつかず、とりあえず〝スマホで昔のホームページを再現する〟をコンセプトにした。ここに拍車がかかったのはインターネットアーカイブで昔のヤフージャパンを見て懐かしいホームページを目にしたことだった。

興奮した。やるしかない。テキストを表示して背景に壁紙を設定して中央ぞろえだのテーブルだのやるのが頗る楽しい。拙いながらも個人ホームページの形になった。
ここで再度、ホームページ作成に火が入る。私は手芸用の糸通しを若い頃からコレクションしている。最近はどこの店もだいたい同じ柄なので熱が冷めていた。ところがSNSで糸通しの話題がバズっていたのを目撃。手芸用品メーカーも一役買っている。そんなところから糸通しのページを作ることにした。そんなわけで「ぼのちょの巣穴」と「糸通しの小部屋」の誕生となった。
作っていくうちに欲が出てくる。プロバイダの無料サービスは100MBバイトまでしか借りられない。100GBでなく100メガバイト。すでに8MBを使っている。どこか有料のサーバを借りるか。サーバ借りるならドメインを取るか。どうする?サーバ借りると言っても知識の無い自分には良し悪しもわからない。古巣のロリポップとムームードメインで草鞋を脱ぐことにした。当初は「ドメインずっと無料」の高額プランの広告バナーに釣られたが年々のコストを計算してランクが一番低いコースをお試し替わりに契約した。ドメインは取得費用と更新費用に大きく開きがあって悩んだ。取得費用が数百円で済むのに更新費用が高かったりするのだ。取得費用は安くないが更新費用が控えめな〝.net〟を選んだ。
・ムームードメイン bonocho.net
.net 取得 1,848円
.net 1年更新 1,848円
・サーバ ロリポップ
エコノミープラン(120GB)
37か月 3,564円(1か月96円)
これがここの家賃。ロリポップの価格は今年2026年1月5日から値上げで、決済が4日だったので値上げ前の価格。容量が120GBもあれば御の字。すごい。データベースが使えないプランだけどこれで十分。1か月96円てタダ同然か。ありがたい。
ファイルの更新とVimエディタ
ローカルで編集したファイルをアップロードしてからエラーに気づいても元に戻せないことがある。編集中のままエディタを開いていれば巻き戻してアップしなおしもできるが閉じてしまえばそれも叶わない。この頃は簡単な編集であればFTPクライアントの〝WinSCP〟上のエディタを使ってリモートのファイルを直接いじっている。動作に不具合がなければ編集したリモートファイルをダウンロードしている。バックアップの取り方が下手というか要領を得ない。なにかセオリーがあるのだろうけどその知識が無い。
パソコンで使っているエディタは窓の杜で落としたVimだ。高機能な〝普通の〟エディタだろうと高を括っていたらとんでもなかった。何にもできなくて手も足も出せない。難しい。初心者モードでようやく使えた。設定を変えるのも何日かかかったくらい。とにかく難しい。それでも乗りかかった船と思い、必死にしがみついて使っている。Vimの他に〝Crescent Eve〟というHTMLに特化したエディタもインストールしてあるが、こちらは文字化けをおこすので保留にしてある。私が文字コードをきちんと把握して正しい設定をすれば使いこなせるのだろう。今はそれができない。
Vimはあまりにも難しいのでやることなすこと失敗の連続だが、失敗の数が多いほどひとつひとつできることが増えていく。ウェブで初心者向けの解説を探してもプログラム知識があることが前提としての解説なので、そこに明るくない私にとってはほとんど解らない。初心者向けの設定情報があっても、その設定を変更する方法を知らないのだ。そもそも設定ファイルに文字を入力するのも保存するのもできなかった。そのうち管理者権限で設定ファイルを開くことと設定を入力する画面の見方がわかった。やっと設定を変えることができた。設定を変えると言ってもコード(コマンド?)の入力なので慣れない。
そうこうするうちにぼんやりと仕組みを捉えつつある。今使っているノートパソコンにはマウスが無いので、このVimに慣れるのが良いような気がする。うまく慣れるのか不安であるが。
話を元に戻すと、Vimでファイル編集するとundoファイルとバックアップファイルが自動で生成される。このファイルがあれば編集終了後も後々さかのぼることができるんだそうな。ただ、その生成先ディレクトリがファイルと同じ階層なのだ。フォルダに10のファイルがあれば、そこにundoとバックアップファイルがそれぞれ10ずつ合計20のファイルが増えてしまう。FTPクライアントの画面が大変なことになってしまう。拡張子をまとめて隠しファイルにしようとしてもできず。これに困っている人が世の中にいるということは拡張子ごとに隠しファイルにできないのかもしれない。これらの保存先を指定する設定があると知って試してみたが上記の通りえらい大変だった。設定変更のコマンドを間違えてばかりで四苦八苦してやっと設定変更を通すことができた。…のはずだが、保存先に指定したフォルダにファイルが生成されていない。ホームページに使うファイルと同じディレクトリには生成されなくなった。もやもやするけどひとまずよし。
パソコンで使っているエディタは窓の杜で落としたVimだ。高機能な〝普通の〟エディタだろうと高を括っていたらとんでもなかった。何にもできなくて手も足も出せない。難しい。初心者モードでようやく使えた。設定を変えるのも何日かかかったくらい。とにかく難しい。それでも乗りかかった船と思い、必死にしがみついて使っている。Vimの他に〝Crescent Eve〟というHTMLに特化したエディタもインストールしてあるが、こちらは文字化けをおこすので保留にしてある。私が文字コードをきちんと把握して正しい設定をすれば使いこなせるのだろう。今はそれができない。
Vimはあまりにも難しいのでやることなすこと失敗の連続だが、失敗の数が多いほどひとつひとつできることが増えていく。ウェブで初心者向けの解説を探してもプログラム知識があることが前提としての解説なので、そこに明るくない私にとってはほとんど解らない。初心者向けの設定情報があっても、その設定を変更する方法を知らないのだ。そもそも設定ファイルに文字を入力するのも保存するのもできなかった。そのうち管理者権限で設定ファイルを開くことと設定を入力する画面の見方がわかった。やっと設定を変えることができた。設定を変えると言ってもコード(コマンド?)の入力なので慣れない。
そうこうするうちにぼんやりと仕組みを捉えつつある。今使っているノートパソコンにはマウスが無いので、このVimに慣れるのが良いような気がする。うまく慣れるのか不安であるが。
話を元に戻すと、Vimでファイル編集するとundoファイルとバックアップファイルが自動で生成される。このファイルがあれば編集終了後も後々さかのぼることができるんだそうな。ただ、その生成先ディレクトリがファイルと同じ階層なのだ。フォルダに10のファイルがあれば、そこにundoとバックアップファイルがそれぞれ10ずつ合計20のファイルが増えてしまう。FTPクライアントの画面が大変なことになってしまう。拡張子をまとめて隠しファイルにしようとしてもできず。これに困っている人が世の中にいるということは拡張子ごとに隠しファイルにできないのかもしれない。これらの保存先を指定する設定があると知って試してみたが上記の通りえらい大変だった。設定変更のコマンドを間違えてばかりで四苦八苦してやっと設定変更を通すことができた。…のはずだが、保存先に指定したフォルダにファイルが生成されていない。ホームページに使うファイルと同じディレクトリには生成されなくなった。もやもやするけどひとまずよし。
jcodeモジュールとSUDO
■人工無能
前回変更したjcode周りの箇所は不具合が出ない様子なので同じコードをローカルで試してみたら500エラーだの何だの。デバッグ(というのか?)をすると「Perlにjcode.pmモジュールがインストールされてない」と表示される。CGIと同じフォルダの中にjcode.pmは入れてある。調べてみると〝モジュール〟のインストールをしなければならないらしい。
参考:「Perlのモジュールインストール方法」
記事に従って進めると今度は「SUDOがオンになってない」という。Windows側の問題らしい。
参考:「このコンピュータではSUDOが無効になっています。」
念のために管理者権限でPerlコマンドラインを起動しなおして進めた。途中(恐らくインストールが完了した時点で)CPANという命令?から抜け出せなくなった。CGIのデバッグをしたくてもどうにもならないのでそのままウィンドウを閉じて開きなおし、どうにかこうにかjcodeモジュールのインストールを完了できた。モジュールのインストールを促すメッセージは表示されなくなった。SUDOはまたオフに戻しておいた。
前回変更したjcode周りの箇所は不具合が出ない様子なので同じコードをローカルで試してみたら500エラーだの何だの。デバッグ(というのか?)をすると「Perlにjcode.pmモジュールがインストールされてない」と表示される。CGIと同じフォルダの中にjcode.pmは入れてある。調べてみると〝モジュール〟のインストールをしなければならないらしい。
参考:「Perlのモジュールインストール方法」
記事に従って進めると今度は「SUDOがオンになってない」という。Windows側の問題らしい。
参考:「このコンピュータではSUDOが無効になっています。」
念のために管理者権限でPerlコマンドラインを起動しなおして進めた。途中(恐らくインストールが完了した時点で)CPANという命令?から抜け出せなくなった。CGIのデバッグをしたくてもどうにもならないのでそのままウィンドウを閉じて開きなおし、どうにかこうにかjcodeモジュールのインストールを完了できた。モジュールのインストールを促すメッセージは表示されなくなった。SUDOはまたオフに戻しておいた。
jcode.plのこと
動かない人工無能少女まりちゃんは500エラーが出ていた。この原因はjcode.plの古さにあった。見様見真似でこれをjacode.plに変更することで500エラーは起こらなくなった。欲をだしてjacode.pmというのに挑戦したがこれもまたエラーなのでひとまずjacode.plにとどめておく。
それからコードの中のjcodeにまつわる箇所にも難があるらしい。
参考:KENT-WEB サポートコーナー過去ログ〔0301〕
ただ、ここを変更してもしなくても文字化けはしていないので動かない直接の原因かどうかはまだ分からない。今の不具合は名前欄に入力してボタンを押しても会話(チャット)が始まらない状況。チャットに入室できないというか。過去ログは表示されている。どこが悪いんでしょうか…。相変わらず文法エラーは無し。
※記事に訂正箇所のコードを挿入すると投稿時に403エラーになってしまう。このブログにはWYSIWYG(ウィジウィグ)エディター「NicEdit日本語版」が備わっていてコードを入力して投稿できるはずなのだがうまく作用していない。これも課題。
jcodeとJcodeの大文字小文字のミスを訂正した。名前を入力するとログに現われるが会話の入力フォームが表示されない。しかし、まりちゃんが「何か入力してみてね」を返してくれるようになった。

それからコードの中のjcodeにまつわる箇所にも難があるらしい。
参考:KENT-WEB サポートコーナー過去ログ〔0301〕
ただ、ここを変更してもしなくても文字化けはしていないので動かない直接の原因かどうかはまだ分からない。今の不具合は名前欄に入力してボタンを押しても会話(チャット)が始まらない状況。チャットに入室できないというか。過去ログは表示されている。どこが悪いんでしょうか…。相変わらず文法エラーは無し。
※記事に訂正箇所のコードを挿入すると投稿時に403エラーになってしまう。このブログにはWYSIWYG(ウィジウィグ)エディター「NicEdit日本語版」が備わっていてコードを入力して投稿できるはずなのだがうまく作用していない。これも課題。
jcodeとJcodeの大文字小文字のミスを訂正した。名前を入力するとログに現われるが会話の入力フォームが表示されない。しかし、まりちゃんが「何か入力してみてね」を返してくれるようになった。

Apache2.4とStrawberry Perl
動かない人工無能をなんとか自分で直したい。イチから勉強して自作するか、それとも原因を突き止めて修正するか。いろいろ調べた。CGIの不具合を直すには「Apacheの環境があるならば」「Perlが使えるなら」…そう書いてあることが常だ。物は試し、無知の怖いもの知らずでApacheとPerlをインストールすることに。
CGIを触るならPerlかなという発想からまず先にPerlをインストール。Strawberry Perlというのを選んだ。動かないCGIのデバッグについて書かれた記事を参考に触るとそれなりに反応が返ってくる。面白い。でもコードの表示だけで実動している様子がわからない。サーバをインストールする必要があるようだ。Apache2.4をインストール。ここからが大変だった。
CGIファイルの冒頭に記載するPerlへのパスがわからない。ひとまず数行程度のCGIファイルを作ってそれで練習することにした。インストールしたPerl.exeのパスC://云々をコピーして使うと表示される。見慣れたCGIは#! usr/local/bin/perl だ。自分もそうしたい。「てがろぐ」CGIをローカルPCで動かす方法という記事を読むと「AN HTTPD」というサーバを使うのが易しくできそうだ。〝玄人志向〟なApacheよりもやりいやすいらしい。これもインストールした。日本語で操作しやすそう。でも世の中のCGIに関する情報は圧倒的にApacheなので元通りApacheを使うことにした。
とにかくPerlへのパスが通らない。ファイルの場所が悪いのかスラッシュとバックスラッシュと¥マークの区別があるのか。Apacheのフォルダの中にルートディレクトリを指定したのがマズいのか。何もわからない。usr/local/bin/perlはどこを指すのか。localhost/test.cgiを参照しても403になる。自分で書いたCGIがダメなのか。動かないCGIを置いてみても403。四苦八苦してC:にusr/local/binを作ってそこにPerl.exeを置いたらやっとパスが通った。表示された。感動。これだけで一両日くらい時間を費やしてしまった。やっとPerlのパスが通って動かないCGIが500エラーに。思わず喜んでしまった。ちゃんとサーバが仕事している!レンタルサーバと同じエラーが返ってくる!エラー表示に喜んだのはこれが初めての経験だ。嬉しい。
CGIを触るならPerlかなという発想からまず先にPerlをインストール。Strawberry Perlというのを選んだ。動かないCGIのデバッグについて書かれた記事を参考に触るとそれなりに反応が返ってくる。面白い。でもコードの表示だけで実動している様子がわからない。サーバをインストールする必要があるようだ。Apache2.4をインストール。ここからが大変だった。
CGIファイルの冒頭に記載するPerlへのパスがわからない。ひとまず数行程度のCGIファイルを作ってそれで練習することにした。インストールしたPerl.exeのパスC://云々をコピーして使うと表示される。見慣れたCGIは#! usr/local/bin/perl だ。自分もそうしたい。「てがろぐ」CGIをローカルPCで動かす方法という記事を読むと「AN HTTPD」というサーバを使うのが易しくできそうだ。〝玄人志向〟なApacheよりもやりいやすいらしい。これもインストールした。日本語で操作しやすそう。でも世の中のCGIに関する情報は圧倒的にApacheなので元通りApacheを使うことにした。
とにかくPerlへのパスが通らない。ファイルの場所が悪いのかスラッシュとバックスラッシュと¥マークの区別があるのか。Apacheのフォルダの中にルートディレクトリを指定したのがマズいのか。何もわからない。usr/local/bin/perlはどこを指すのか。localhost/test.cgiを参照しても403になる。自分で書いたCGIがダメなのか。動かないCGIを置いてみても403。四苦八苦してC:にusr/local/binを作ってそこにPerl.exeを置いたらやっとパスが通った。表示された。感動。これだけで一両日くらい時間を費やしてしまった。やっとPerlのパスが通って動かないCGIが500エラーに。思わず喜んでしまった。ちゃんとサーバが仕事している!レンタルサーバと同じエラーが返ってくる!エラー表示に喜んだのはこれが初めての経験だ。嬉しい。
ロリポップが昔のままだった
20何年振りにレンタルサーバを借りることになりどこのサービスにするか悩みそうでほとんど悩まずにロリポップを選んだ。利用していたことがあり馴染みがあったからだ。今やロリポップのサイトはすっかり様変わりして昔のキュートでポップなイメージは皆無。ビジネス向けの印象が強く少し寂しい感じもある。
アカウントを作り直してログインしたら、なんと、中身の外観は20年前のままのデザインなのだ。懐かしいやら驚くやら。FTP画面はロリポおじさんがいるではないか。これはどうしてだろう。デザインを変えるのは難しいだろうか。それとも何か思い入れがあってそのままなんだろうか。ロリポおじさんを見ていると若かりし頃のあれこれを思い出してしんみりしてしまう。あの頃楽しかったなあ。


ところで今回ロリポップを再開して昔と同じ苦労をしている。CGIのパーミッション設定に癖があってスタンダードな設定ではうまくいかない。ここで躓いて進めなくなった記憶が蘇る。今は懐かしい個人ホームページを作りたいので昔以上にCGIを色々使ってみたい。このブログもCGIを設置したものでパーミッション設定の間違いと思われるエラーが一部ある。管理画面からCSSファイルの編集をして保存すると403エラーになってしまう。ファイルを直接編集することで回避できているが、どうせなら管理画面から正しく扱いたい。
【追記】ロリポップのユーザページからWAF設定を切ったところ403エラーは解消された。このケースはCGIファイルに問題が含まれるそうで管理者自身で修正しWAFを有効にするのが推奨されるとのこと。
ロリポップ参考ページ「PHPやCGIでプログラムの記述変更をしたところ403errorが表示されます」
【追記】このエラーは管理画面上で編集したHTMLファイルを保存するときに起こっている。編集内容によってエラーにならないので、コードの何かがひっかかるのかもしれない。同じエラーになっていたCSSファイルの編集はうまくいくようになった。原因がわからない。
アカウントを作り直してログインしたら、なんと、中身の外観は20年前のままのデザインなのだ。懐かしいやら驚くやら。FTP画面はロリポおじさんがいるではないか。これはどうしてだろう。デザインを変えるのは難しいだろうか。それとも何か思い入れがあってそのままなんだろうか。ロリポおじさんを見ていると若かりし頃のあれこれを思い出してしんみりしてしまう。あの頃楽しかったなあ。


ところで今回ロリポップを再開して昔と同じ苦労をしている。CGIのパーミッション設定に癖があってスタンダードな設定ではうまくいかない。ここで躓いて進めなくなった記憶が蘇る。今は懐かしい個人ホームページを作りたいので昔以上にCGIを色々使ってみたい。このブログもCGIを設置したものでパーミッション設定の間違いと思われるエラーが一部ある。管理画面からCSSファイルの編集をして保存すると403エラーになってしまう。ファイルを直接編集することで回避できているが、どうせなら管理画面から正しく扱いたい。
【追記】ロリポップのユーザページからWAF設定を切ったところ403エラーは解消された。このケースはCGIファイルに問題が含まれるそうで管理者自身で修正しWAFを有効にするのが推奨されるとのこと。
ロリポップ参考ページ「PHPやCGIでプログラムの記述変更をしたところ403errorが表示されます」
【追記】このエラーは管理画面上で編集したHTMLファイルを保存するときに起こっている。編集内容によってエラーにならないので、コードの何かがひっかかるのかもしれない。同じエラーになっていたCSSファイルの編集はうまくいくようになった。原因がわからない。
WiMAXとFTPアクセス制限
自宅のVDSLがいよいよサービス終了になる。光回線の引き込み工事を大家さんが渋り実現しそうにない。建物内部に配管が通ってないのである。ケーブルテレビ回線はあるのでネット回線はそちらで…という話だが私はケーブルテレビの回線は使いたくない。そこでWiMAXを導入した。昨日作業してなんとか繋がった。新しいルータの機能に以前使用していた設定を引き継げるようなものがあったのでそれを試したら以前のSSID名が表示されセキュリティは弱い状態になっている。手動でセキュリティの設定を変更してみたものの塩梅が悪い。スマホは繋がるがPCがまるで駄目。業を煮やしてルータをリセットしてやりなおし。設定の引継ぎなどの機能は使わずに手動でイチからやりなおしたらうまくいった。セキュリティも問題なし。
その後はほとんど安定して繋がっている。一安心。だがしかし。私はWiMAXがどういうものか知らなかったので落とし穴があった。グローバルIPアドレスが時間をおくと変わってしまう!これが困った!ここのレンタルサーバはセキュリティの都合上、FTP接続を許可するIPアドレスを登録しなければならない。なので知らぬ間にIPアドレスが変わると接続できない。その都度登録しなおすことになる。面倒くさい。毎日こうなんだろうか。それとも一定の期間は変わらずに使えるだろうか。昨日はルータの再起動のタイミングで一回変わり、その後数時間して前触れもなくまた変わってしまった。
ホームページのカウンタも困る。自分のIPアドレスはカウントしたくないけれどコロコロ変更されたらカウントされてしまう。そんなわけで巣穴の100番目のキリ番は私が踏んでしまったらしい。ああ。
使っているレンタルサーバのサービスに固定IPアドレスを月に500円くらいで貸し出してくれるというものがある。小さな個人ホームページにそれは大仰なことだ。不便を貫くしかないのか。
【追記】IPアドレスが変わっても一旦ロリポップのユーザページにログインすれば自動で.ftpaccessが書き換わっているような気がする…。
【追記】やはりユーザページにログインすることでFTP許可IPアドレスは自動で書き換わっている。例えば出先などでFTP接続するには一度ログインするだけで不都合なくなるのかもしれない。
【追記】FTP接続の間、ダミーコマンドの送信などで接続が維持されているとIPアドレスが変更になっても切断されることが無い様子…かもしれない。どうだろうか。
その後はほとんど安定して繋がっている。一安心。だがしかし。私はWiMAXがどういうものか知らなかったので落とし穴があった。グローバルIPアドレスが時間をおくと変わってしまう!これが困った!ここのレンタルサーバはセキュリティの都合上、FTP接続を許可するIPアドレスを登録しなければならない。なので知らぬ間にIPアドレスが変わると接続できない。その都度登録しなおすことになる。面倒くさい。毎日こうなんだろうか。それとも一定の期間は変わらずに使えるだろうか。昨日はルータの再起動のタイミングで一回変わり、その後数時間して前触れもなくまた変わってしまった。
ホームページのカウンタも困る。自分のIPアドレスはカウントしたくないけれどコロコロ変更されたらカウントされてしまう。そんなわけで巣穴の100番目のキリ番は私が踏んでしまったらしい。ああ。
使っているレンタルサーバのサービスに固定IPアドレスを月に500円くらいで貸し出してくれるというものがある。小さな個人ホームページにそれは大仰なことだ。不便を貫くしかないのか。
【追記】IPアドレスが変わっても一旦ロリポップのユーザページにログインすれば自動で.ftpaccessが書き換わっているような気がする…。
【追記】やはりユーザページにログインすることでFTP許可IPアドレスは自動で書き換わっている。例えば出先などでFTP接続するには一度ログインするだけで不都合なくなるのかもしれない。
【追記】FTP接続の間、ダミーコマンドの送信などで接続が維持されているとIPアドレスが変更になっても切断されることが無い様子…かもしれない。どうだろうか。
