PHP/phpMyAdmin関連インストールの罠

Last-modified: 2010-10-14 (木) 11:49:13

基本的には、http://www.dbonline.jp/phpmyadmin/install/にある方法に沿う形で進めたが
以下のような問題があった。

一応、設定ファイルの場所の確認

php.ini     

phpフォルダの中(C:\phpを想定)

httpd.conf  

Apatcheのconfフォルダの中(C:\Program Files\Apache Software Foundation\Apache2.2\confを想定)

config.inc.php

phpMyAdminの中(C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\phpMyAdminを想定)

php.iniの設定をしたが、何も表示されない

※もちろん、PHPのインストールは必要

まずはphpinfo.phpの表示ができるか?

・Apacheを入れてない
・ApacheでPHPを動作させるための設定をしていない
基本的にPHPは、パスを設定するだけでインストール完了だが、
それだけではダメ。
http://www.adminweb.jp/apache/
の「PHP利用のための設定」を実行せよ
→これを設定完了した時点で、phpinfo.phpを表示して正しくできる
※ただし、Apatcheを再起動してもうまくいかないときに、システムの再起動をしたらうまくいったという前例あり
PHPIniDir "c:/php"
は結構指定が難しい
PHPIniDir "c:\php\"
と指定したらNGだった。

それでも、phpAdmin/index.phpにアクセスできない

上記サイトには、「extensionの格納場所の設定」に関する記述がないので注意!
※見直したところ、インストールの項目にないだけで、初期設定の項目に記述があるようだ
 ここまで含めて設定が必要ということ。
php.iniに以下のような記述が必要

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/php/ext"

デフォルトでextension_dirがコメントアウトになっている。
C:/phpの部分はインストールした場所を指定すべし
もちろん、システムのPathにも登録しておくこと(これはPHPのインストール時にやっているはず)
これをしないと、
extension=php_mysql.dll
とか設定しても意味がないのだ。

extensionは2個あるよ

extension=php_mysql.dll
はコメントアウトしてあるのにすぐ気がつくが、
extension=php_mbstring.dll
を忘れていないだろうか?何気にコメントアウトしてあるので注意(赤字になってない)

ログイン画面はOKでも、ログインすると真っ白

config.inc.phpを以下のように設定すると一発で治る

$cfg['Servers'][$i]['host'] = '127.0.0.1:3306';

↑デフォルトではlocalhostになっている。
localhostだとNGになってしまう理由はファイアーウォールか?
情報元:http://blog.livedoor.jp/ahirunum/tag/phpMyAdmin

その他、ログイン時にうまくいかない理由を挙げたもの

壊れたクッキーが原因?

http://linux.enegai.jp/modx/wp_blog.html?p=404

アクセス制限?

http://blog.plastik.jp/archives/24

Linuxでパーミッションをミスっているケースもあるらしい

Windows 7でprogram filesのアクセス権が厳しいのが原因?

http://soudan1.biglobe.ne.jp/qa6125309.html
→Windows7でテストしているが、これが原因ではないようだ。

設定を終えたら

もちろん、Apatcheは再起動しましょう。

その他、設定推奨個所

php.ini関連

extension=php_mysqli.dll
↑の変更はphpMyAdminでmysqliを使うなら絶対に必要
extension=php_pdo_mysql.dll

config.inc.php関連

$cfg['Servers'][$i]['extension'] = 'mysqli';
↑デフォルトでは、mysqlになっているが、こっちのほうがいいかも?とのこと

httpd.conf関連

デフォルトでは、http://localhost/phpMyAdminにアクセスすると
Index of /phpMyAdminが表示されてしまうので

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

のように、index.phpを末尾に追加する。