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エラーに。思わず喜んでしまった。ちゃんとサーバが仕事している!レンタルサーバと同じエラーが返ってくる!エラー表示に喜んだのはこれが初めての経験だ。嬉しい。
