雑記

mixiに書いている日記の代わりだったりします。

2006/05/05

PHPとPerlとMySQLと(1)

ということで、MySQLとPerlとPHPを組み合わせるという技を使ってみることにした。
何をしたいのか。うーん、つまり、Webサーバのアクセスログサマライザを作ろうとしていたのだけど、この前のPerlのツールが、再インストールで吹っ飛んでしまったので、ただ作り直すのも芸がないので、DBを使ってやってみることにした。前々からDBは使ってみたかったのだけど、なかなか勢いがつかなかったので、この連休にやってみることにした。

以下の情報はこのブログを書いたときの最新であって、常に最新とは限らないので、要注意。
まず、PHPMySQLをダウンロードする。で、インストールしてしまう。インストール時は、Cドライブにインストールした。後々面倒なことになるような気がしたので。

で、インストールが終わったら、とっとと設定するわけだが、ここでApacheとPerlも当然インストールが必要なので、前に作成したメモを参考にしておいてください。
設定項目はそれほど多くない・・・と言いたいところではあるのですが。細かいのがいくつかあるので、順番にやっていった。参考にしたのはHotwired

まずは、MySQLについては、Hotwiredの指示に従えば、何とかなる。ただし、Windowsの場合は、なかなか難しい問題があって、インストール後のbinディレクトリをコマンドプロンプトで呼び出せるようにしておくと便利(というのも、スタートメニューから呼び出せるのは、あくまでもrootの場合だけなんだよね・・・いや、ショートカットを編集すればいけるんだけど)。窓の手で設定すれば、フォルダをexplorerで右クリックすれば、「コマンドプロンプト」が出てくるようになります。これ、意外と便利。dirとか使えるし。余談ですが。

で、設定自体は、今回はデフォルトの設定のままです。英語としてはそれほど難しくないので、たぶんインストール自体は何事もなく終わるはず。

続いてPHP。これがちょっとやっかい。Hotwiredの解説とは異なるところが数カ所。「php.iniをphp3.iniにリネーム」とあるけれど、拡張子をphpで動作させたいので、今回はリネームせずに移動。それ以外はHotwiredの解説に従えばよい。中身の「extension=php_mysql.dll」行のコメント外しと、DLLの移動については、解説に従えば問題なく終わる。

今回はApacheと連動させるので、当然ながら拡張子phpをApacheに認識させる必要があること、そして今回は拡張子を「php」で動作させたいことから、以下の行を追加する。

ScriptAlias /php3/ "c:/php3/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php3/php-cgi.exe"

特に最後の行はHotwiredとは異なる。CGIとして動作させたいときは、cgi専用のプログラムを指定する必要がある。

ここまでくれば、とりあえず動かせる環境に・・・なったかな。ということで、動作確認は、当然ながらユーザに近いほうからやっておきましょう。ということで、PHPから。これもHotwiredにサンプルコードがあるので、これを使ってみる。

うまくいかなければ、設定のどこかが間違ってないか、再度確認してみればよい。
で、話はMySQL。まだまだ続く。Windowsの「サービス」を起動する。XPでは、コントロールパネルの「管理ツール」とかにあると思う。ここでMySQLを開始してみる。ファイアウオールが入っていたりすると、ここで警告されることがあるので、「許可」を選択する。できれば、ローカルホストだけに許可する、という設定がいいかもしれない。

続いて、DBを構築していく必要がある。今回は、logsというデータベースを作成し、中にlogsテーブルを作成した。今回のテーブルサンプル。このまま読み込めるようになってます。さらに、ユーザについてはこのlogsデータベースだけにパスワードなし(外部からの接続が容易な状態でこの設定にするのは勧めませんよ)で接続できるようにtestuserを作成した。

ということで、ここまでのコマンドはmysql上では、こんな感じ。

mysqladmin -u root -p create logs
#パスワードを入力
mysql -u root -p #これでmysqlのコマンドラインを起動
#パスワードを入力
create user testuser;
grant all on logs to testuser;
source createtable_logs.txt

これで、テーブルまでは作成できました。ということで、ここらで一服するもよし、勢いで進むもよし。
ブログとしてはここでいったん区切ります。

0 Comments:

コメントを投稿

Links to this post:

リンクを作成

<< Home