本家のほうに書いたが,15日(水)に自鯖のアップデートをした。このときに,phpMyAdmin-3.4.1-english.zip ————> phpMyAdmin-3.4.2-english.zipにしたら,右の図1の赤丸部分のような[注意]が出るようになった。というか,ここんとこ出てたんだが,ページのリニューアルが終ってすっきりしたので目立つようになった。リンクをクリックすると図2のようなページが表示される。日本語対応版だと「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」と出るらしい。
これ,前は「Linked Tables Infrastructure」と言ってたものとほぼおんなじものらしいが,そのころは設定してなくても,[注意]なんかでなかったよな。出てたけど気づかなかっただけかしらん。
ゴリゴリ使えるほどSQLについてわかっていないのだが,これをやっておくとリレーションやら,ブックマークやら使えるようで,今後,勉強をやっていく上には便利そうなので,[注意]を消すために努力してみた。やり方は,図2の下の方に書いてある。
以下の通り。
- MySQLのmy.iniを開けて,[mysqld]のグループに
lower_case_table_names=0
を書き加えて,MySQLを再起動。テーブル名等を小文字で作成させるため。チャンと,変更されたかどうかは,MySQLに[MySQL Command Line Client]からログインし,SHOW VARIABLES LIKE ‘lower_case_table_names’; で確認する。初めから,これが0になっているなら,この作業はいらない。
現時点(2014.7.4)で, lower_case_table_names の値は 1 のままである。この件の元ソースは, 1.23 I’m running MySQL on a Win32 machine. Each time I create a new table the table and column names are changed to lowercase! なんだが,MySQL 5.6 については, If you are using InnoDB tables, you should set this variable to 1 on all platforms to force names to be converted to lowercase. なんて記載もあって,いろいろと悩みが尽きない。とはいえ,今のところ,デフォルトのままで問題なく動いているので,変えていない。 - http://exampl.com/phpmyadmin/ にアクセスし,pmaでログイン。
当たり前だが,http://exampl.com/phpmyadmin/ にアクセスしてphpMyAdminにログインできるためには,Apacheのhttpd.confで以下の設定が済んでいなくてはいけないし,MySQLにpmaというユーザが存在しなくてはいけない。あとの作業の都合上ユーザpmaはアドミン権限。
<IfModule alias_module>
Alias /phpmyadmin “G:/WEB/phpmyadmin”
</IfModule>
<Directory “G:/WEB/phpmyadmin”>
Order Allow,Deny
Allow from 192.168.1.100
</Directory>
<Directory “G:/WEB/phpmyadmin/libraries”>
Order Allow,Deny
</Directory>
上記の設定だと,http://exampl.com/phpmyadmin/ にアクセスできるのは,LAN内の192.168.1.100からアクセスした場合だけである。 - 図3のように configuration storage用のデータベース(phpmyadmin)をアドミン特権で作成。このデータベースにphpMyAdminのscriptフォルダ内にあるcreate_tables.sqlをインポートして,図4のようにテーブルを作成する。
- config.inc.phpを開けて,以下の部分を書き換え,各設定の行頭の//を削除してアンコメントする。他の部分の設定は以前のバージョンと同じでいい。
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
$cfg[‘Servers’][$i][‘controluser’] = ‘pma’;
$cfg[‘Servers’][$i][‘controlpass’] = ‘pmaのログインパスワード’; /* Storage database and tables */
$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
$cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark’;
$cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’;
$cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’;
$cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’;
$cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’;
$cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’;
$cfg[‘Servers’][$i][‘history’] = ‘pma_history’;
$cfg[‘Servers’][$i][‘tracking’] = ‘pma_tracking’;
$cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’;
$cfg[‘Servers’][$i][‘userconfig’] = ‘pma_userconfig’; - 1度ログアウト後,再度ログインすると,図1のメッセージは消えていた。成功。
【注】 ところで,phpMyAdmin狙いのクローラはよくあるので,せめて,ディレクトリ名とエイリアス名(phpmyadmin),データベース名(phpmyadmin),ユーザ名(pma)およびテーブルの接頭辞(pma)くらいは,別のものに変えておいた方がいいと思う。そのためには,create_tables.sqlをインポートする前に,中の書き換えを行っておく必要がある。ディレクトリへのアクセス制限とかパスワードの設定とかは当然だが。
クローラ除けに関してだが,我が家の場合だと,もともとが自鯖で使うのは自分だけなので,用のないときはphpMyAdminのパスそのものを切り離している。
追記(2014/7/4):
Configuration storage(環境保管領域)について,新しい記事を書いた。セットアップに関しては,そちらを見てください。