2007年6月28日木曜日

Apache2 と php4 の相性問題

Apache2.2 に 最新版の PHP4 (4.4.2) をインストールする際、DLL の読み込みエラーが発生する。
(PHP4 インストール後、Apache の起動時に「 Cannot load C:/php/sapi/php4apache2.dll into server 」とうエラーメッセージが表示される。)
原因は、PHP 4.4.x と Apache 2.2 の相性問題による。
 
これを回避するためには、http://www.apachelounge.com/download/ から php4apache2.dll-php4.4.x.zip をダウンロードして差し替える必要がある。
 
差し替え方法は添付の ReadMe に書いてあるが、一応簡単な訳を書いておく。
 
差し替え方法( ReadMe の簡単な訳)
1. 解凍した php4apache2.dll を、php のインストールフォルダにコピーする (例: c:/php)
2. httpd.exe.manifest を apache2/bin にコピーする。
3. Visual C++ 2005 SP1 再頒布可能パッケージ をインストールする。(下記からダウンロード可能)
4. httpd.conf に 下記の様に追記する。
LoadModule php4_module "c:/php/php4apache2.dll"
AddType application/x-httpd-php .php
5. httpd.conf に下記の様に php.ini へのパスを設定する
PHPIniDir "C:/php"
注意: c:/php は例なので、実際には自分の php のインストールフォルダを指定する。
 
以上。

2007年6月25日月曜日

phpMyAdmin 2.10.2 のインストール方法

最新ヴァージョンの phpMyAdmin のインストール方法がなかなか見つからなかったので、書いておく。
 
現時点(2007年6月25日)での最新ヴァージョンは、2.10.2。
最新ヴァージョンはここからダウンロードできる( phpMyAdmin-2.10.2-all-languages-utf-8-only.zip を DL )。
 
古いヴァージョンのインストール方法は、あれやこれやと色々書いてあるが、最新ヴァージョンはいたって簡単。
 

インストール方法(付属ドキュメントの簡単な翻訳)

1. phpMyAdmin-2.10.2-all-languages-utf-8-only.zip を解凍。
2. index.php がある階層にある config.sample.inc.php をコピーして、同じ階層に config.inc.php を作成する。
3. その config.inc.php の内容を、下記のように設定する。
<?php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003';  // ここには自分が決めた適当な文字列を入れる。

$i=0;
$i++;
$cfg['Servers'][$i]['auth_type']     = 'cookie';
?>

この場合、追記等の必要はなく、 $cfg['blowfish_secret'] の値を設定するだけで OK 。( cookie でパスワードの暗号化に使うキーなので、できるだけランダムに )

 

上記の方法(クッキー認証)だと、phpMyAdmin に接続する度に ユーザ名とパスワードを入力する必要があるので、それが面倒な人は下記のように設定する。
<?php

$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'cbb74bc'; // ここにはあなたのパスワードを入力します。
?>

4. あとは フォルダごと php が動く場所にアップロードする。

 

これだけで phpMyAdmin のインストールは終了。

この方法以外にも、最新版には自動で設定ファイルを作成してくれるスクリプトもついているが、最小限必要な設定いがいにも色々しないといけないので面倒。

 

 

Apache 2.2.4 インストール時の注意点(windows)

詳しいインストール方法等は、検索でいくらでも引っかかるので省略。
 
[注意点]
1. ドメイン名、サーバ名、管理者メールアドレス入力画面の、「 Install Apache HTTP Server 2.0 programs and shortcuts for : 」で「 Only for the Current User 」を選択すると、Apache サービスがインストールされない。特別理由がない限り「 for All Users 」で。
原因は、サービスはユーザがログインする前に動くので、指定したユーザのみで Apache を動かすにはサービスでインストールできないからだと思うけれど、じゃぁ指定ユーザだけで動かしたい場合どうやるの?というところまでは分からず。
 
2. デフォルトの httpd.conf では、.htaccess の設定が「 AllowOverride None 」になっている。 設定し忘れて、「あれ動かないぞ?」とならないように。
 
[未解決疑問点]
1. httpd.conf、および .htaccess で Allow from が全く適用されない。 (Deny from は適用される)
 
 
[リンク]
インストール方法:

2007年6月1日金曜日

MySQL の外部結合で、著しく処理速度が低下する。

MySQL + php で Web サイトのアクセス集計を、もともと使っていたシステムを元に作り直していたときに出会った疑問。
 
外部結合をすると、なぜここまで急に処理が遅くなるのか。。。
 
もともと使っていたシステムよりもやけにデータを表示する時間が短いなぁ、と思っていたのだけど、
0件のデータも表示するために外部結合を加えたら、同じくらいにまで処理が遅くなった。
だけど、そこまで支障がある遅さではなかったので、処理の遅さと0件データの必要性を天秤にかけた結果、
その時は0件データをあきらめることにしたのだ。
 
結局、外部結合をすると処理速度が著しく遅くなることはわかったものの、何故、というところまではたどり着かず終いだった。
簡単にネットで調べた感じだと、特に「外部結合=遅い」というような情報はなかったんだけどなぁ。
ただそれだけに、どのような条件で外部結合の処理速度が著しく低下するのかは非常に気になるところ。
頭の片隅に置いておいて、機会があったら追って調べてみようと思う。