基本的には、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を末尾に追加する。