PC奮闘記 続×3P3

| HOME | PC奮闘記 | 続×3PC奮闘記P3 |

Last updated 2008-11-02

続×3・PC奮闘記P3(Windows Vista)

ダースベーダがアトム?
データベース
環境変数?
今度はパール!
選択肢

続×3・PC奮闘記P3(Windows Vista)

ダースベーダがアトム?

ブログを設定して使いはじめたtomoであったけど、使いだしてからどうしても、データベースを、SQLiteからMYSQLに変えたくなった。
MTでは、ブログの初期設定をするときに、データベースを、「Berkeley DB」「MySQL」「PostSQL」「SQLite」の4つから選択して設定することになっている。
tomoが、もともと、SQLiteを選択したのは、それがベストだったからではなくて、WEBでMTの設定方法を解説をしているサイトを見つけた時、その設定例が、SQLiteだったからという単純な理由からだった。

ブログを設定したときに、データベースは、何でつくりましたか?とホームズさんに聞かれたことがあって、ん?ダースベーダー?
もしかして、どの設定を使うか選んでくださいってあった、あれのことね、なら・・・「SQLiteです。」と答えたら
「う~~ん。アトムですね・・。」ブログを見ながらホームズさんがつぶやいたので、「ん?アトム?ウランちゃんの方がよかった。」・・・とわけわからない返答をしてしまった。

毎度、tomoの受け答えにつきあわされているホームズ氏は、つわものである。
「そっかぁ~MYSQLなら、少しはアドバイスできるのですけどねぇ・・・」と、わけわからない会話に取乱すこともなく、会話をつづけた。

(そうなんだ・・・MYSQLにしたらよかったなぁ・・・)

それにしても、MYSQLってアトムっていうの?tomoのダースベーダはアトムなのか?

ホームズさんに、確認したら、「MYSQLは、アトムなんかじゃありませんよ!」とビックリされてしまった。
だって、そんなふうに言いませんでしたっけ?

ホームズさんが、ブログをみながらアトムだといっていたのは、フィードのことらしい。・・んん?フィードってなによ?

フィードっていうのは、、「XML」「RSS」「Atom」とかいうもので、そのサイトが更新されたかどうかを確認するために、わざわざサイトにアクセスしなくても確認できる機能で、「シンジケーション」や「アグリゲーション」、または「購読」などと呼ばれているらしい。
RSSには、1.0とか2.0とかバージョンがあるらしい。
だけど、ウランはない・・・念のため。

しかし、こんなにわけがわかってない状態で、奇跡的に、SQLiteで、やっとブログの設定できたのに、
果たして、tomoは、CGIファイルを書き換えて、データベースをちゃんと設定しなおせるのか?

ここで一句  「アトムって 鉄腕アトム とちがうって? 」

 

データベース

ブログをたちあげたものの、なんだか、なかなか更新できないままに、月日だけが流れ・・・

思い出したように、ブログの設定画面に入ってみると・・・
な~んと、誰もエントリーもコメントもしていないと思っていたら、毎日、まめに、スパムなコメントがいっぱい投稿されていた。
BBSも、メールも、そしてブログも、ここんとこ、ネットの世界って、迷惑なアクセスが蔓延してるものね
tomoが許可しないと公開されない設定にしてあったから、表沙汰になってなかったものの、なんかうっとうしい。

さて、tomoが登録していたアドレスが使えなくなったので、個人情報の変更をしようとおもって、ひさびさに、レンタルサーバーにログインしてみた。
すると、そこに、データベース情報がアップされていた。
よく見てみると、MYSQLの情報ではないの

あれ~前からこんな情報のってたかしら・・・

なんたって、PCの世界って、認識できていないことに関しては、盲目なものだから。
自分のわかっている部分だけの視野しかなく、理解できないことは、たとえ、日本語で書いてあったとしても、外国語で書いてあるように思うもんね。

それでも、ひとつづつだけど、わかるようになるもんなんだと、ほんのちょっぴり自分にエールをおくりたい気分。
これで、MYSQLにトライできるよ~と、背中を押されたtomoであった。

ここで一句  「御膳立て してあったんだ レンタル鯖 」

環境変数?

さてさて、まずは、リモートサイトにアップされている、ブログのファイルを、いったん、ローカルサイトに、ダウンロード。
ひさびさの作業で、ふとリモートサイトをみると、アップした覚えがないファイルや画像がいっぱいちらばっているではないの。

よ~くみてみると、ブログのエントリーのファイルだった。
ブログを設定したときに、サイトのURLで設定したら、index.htmlが勝手に書き換わって、ブログがホームになってしまったのだけど、ようやく、自分がどんな設定をしたのかが理解できた。

tomoは、/publichtml/にブログを作成したってことなんだね。
でもって、/publichtml/index.html が自動的に、ブログのindex.htmlに書き換わったので、ホームページの表紙が、ブログになっちゃったんだ。

一人で納得しつつ、ダウンロードしたmt-config.cgiファイルを、サーバーの情報どおりに書き換えて、サーバーにアップ。
属性を変更して、設定URLにアクセスしてみた。

すると、「Got an error: 環境変数「」が未設定です。(ファイル: /mt-config.cgi、40行目)というメッセージがでてすすめなくなってしまった。
・・・ハテ?環境変数ってなに?

しばらく、音信がとだえていたホームズさんをタイミングよく見かけたので、すかさず、声をかけた。

「データベースを初期化してたんですけどね・・」
「はいはい。」
「こんなメッセージが・・・」
「40行目に書かれている文章を教えてください。」
「> DBSocket/usr/local/bin/mysql/mysql.sock
この一行って、サーバー情報で追加するように書いてあったから追加したんですけど」

「データベースの場所を指定するのだと思います。
念のため、上の行もコピペしてもらえますか?」

「> ObjectDriver DBI::postgres
> Database ********
> DBUser *******
> DBPassword ********
> DBHost *******
> DBSocket/usr/local/bin/mysql/mysql.sock」

「この文章って、tomoさんは分かりますか?おそらく自分がセットした、もしくはレンタルサーバーがセットしたMySQLの場所やパスだと思うのですが。」
「レンタルサーバーからの情報どおりにかきたえたのですけど」
「データベースにアクセスするためのパスやアドレスを正しくmt-config.cgファイルで指定すれば動きます。」
「なんかまちがえてるってことですね」
「では、正しいって事ですね。。。う~む」


(35行目)先頭の「#」を削除していただき、以下の内容を記述します。
ObjectDriver DBI::mysql
Database (データベース名を記述)
DBUser (アクセスIDを記述)
DBPassword (パスワードを記述)
DBHost (データベースサーバー名を記述)

(40行目)以下の1行を追記してください。
DBSocket /usr/local/bin/mysql/mysql.sock

これまでの作業で動作準備が整いましたので、
「http://お客様のURL/設置ディレクトリ名/index.html」にアクセスして下さい。
「ログイン」ボタンをクリックすることで、データベースを初期化することが出来ます。



「・・ってレンタルサーバーのページにかいてあったのですが」
「ほぼ完璧な説明ですね・・・環境変数」
「すみません。サーバーに問い合わせてみます。」
「あ。忘れてました。おひさしぶりです。(^^)/」
「はい。おひさしぶりです。」

・・・とホームズ氏との会話を終了して、もういちど、ファイルのコードをみなおしてみてそれでわからなければ、サーバーに問い合わせてみることにした。

ここで一句  「意味ないね 意味わからない メッセージ 」

今度はパール!

さて、そして、tomoは、発見したのだよ・・・

(40行目)以下の1行を追記してください。
DBSocket /usr/local/bin/mysql/mysql.sock

って、tomoの入力したのは、DBSocket/usr/local/bin/mysql/mysql.sockとなってて、
DBSocket○/usr/local/bin/mysql/mysql.sock
       ↑
○印のところに、スペースが入ってないジャン!
・・ということで、書き換えてアップしたら、今度は、ちがうメッセージが・・・

「またまたすみません
今度は、メッセージがかわりました(^^ゞ」
と、またまた、あわてて消えないうちにホームズ氏に声をかけた。

ot an error: install_driver(Pg) failed: Can't locate DBD/Pg.pm in @INC (@INC contains: /home/e39087-1/public_html/cgi/mt/extlib lib /etc/perl /usr/local/lib/perl/5.8.4 / usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 / usr/share/perl/5.8 /usr/local/lib/site_perl .) at (eval 5) line 3.
Perhaps the DBD::Pg perl module hasn't been fully installed,
or perhaps the capitalisation of 'Pg' isn't right.
Available drivers: DBM, ExampleP, File, Proxy, SQLite, Sponge, mysql.
at lib/MT/ObjectDriver/DBI/postgres.pm line 76
だそうです(^^ゞ」
「これで、perlのバージョンと場所は分かりましたね(^^ゞ」
「そ、そうなんですか(;^_^Aチンプンカンプン」
「バージョン5.8 位置は/usr/local/share/perl/5.8.4 /」

「しかし、なじぇエラーメッセージが変わりました?」
「40行目のスラッシュの前にスペースがなかったからいれたんです」
「半角ですよね」
「牛角・・でなく半角です。」
「とすると、これが正しいメッセージかぁ・・・」

「今度のエラーはPerl本体の方なので、クライアントがいじれませんね。」
「そ~なんだ(;^_^A」
「では真珠やさんに問い合わせします。」
「モジュールが足りないみたいですが、MySQLを利用するにあたり、なにかインストールする指示はありましたか?」
「あったのかな・・?みなおしてみます。問い合わせるのはそれからですね。がんばってください(←誰がやねん^^;)」

ここで一句  「名探偵! 暗号解読 しちゃうし 」

選択肢

「MySQLは、そのサーバーで何の設定も無く利用できますか?」
「CGIチェックファイルをアップしなおしてみたんですけど」
「ほうほう」
「それみたらわかります?」
「はい。DBD::mysqlは入ってますね」
「はいってますねぇ」
「DBD::SQLiteを削除しないとダメかな?CGIファイルでSQLiteに関する記述の先頭に#を入れました?」
「#はいれましたけど、前のファイルのうわがきでつかってるから、データベースを2重に指定してる事になってるかも?SQLiteとMySQL」

ここで、ホームズ氏にファイルを見てもらった。

##### MYSQL #####
#ObjectDriver DBI::mysql
#Database DATABASE_NAME
#DBUser DATABASE_USERNAME
#DBPassword DATABASE_PASSWORD
#DBHost localhost

##### POSTGRESQL #####
ObjectDriver DBI::postgres
Database ********
DBUser *******
DBPassword ********
DBHost *******
DBSocket/usr/local/bin/mysql/mysql.sock

##### SQLITE #####
#ObjectDriver DBI::sqlite
#Database /db/mtdb


##### BERKELEYDB #####
#DataSource /path/to/database/directory



(…結局、全部見てもらってるし。最初から見てもらえばよかったよ。)
ホームズさんがつぶやいた。
「意味が分りました。この記述だと、インストールされていないデータベース「POSTGRESQL」を利用する設定になっています。」
「あっ!tomoも分かりました!これでつかえたら奇跡ですね。おかしいなぁ~35行目っていう指示があったから、コードちゃんと見ずに、行だけ数えてそのとおりに入力しちゃった。」

「あっ、分りましたね 。POSTGRESQLの後につづく行頭に「#」をつけて、MySQLの方を設定して、「#」を外します。」

「これで解決です!」


言われたとおりに、ファイルを書き換えてアップしたら・・・
やったよ~やっと、インストール画面に入れたよ(^^)v

ここで一句  「原因は 結局tomoの 勘違い 」

tomo_city.gif