親サイトの自動保存がうまくいかない。

投稿アップデート情報  追記(9/6)

 いつからかは定かでないが,最近, o6asan.com での自動保存ができなくなっていた。 o6asan’s soliloquyo6asan’s soliloquy-part2 では問題なし。

 それとは別に, 29 日に php_opcache.dll がらみで, Apache のエラーログを見ていたときに多量の「WordPress database error Duplicate entry ‘0’ for key ‘PRIMARY’ for query INSERT INTO `WordPress DB table name` ~」に気づいた。

 昨日,ふとそのエラーのことを思い出して,対処してやろうと,エラーログをのぞきに行ったら, Notes 関係のものがたくさんあるということに気づいた。ここに至って,このエラーと自動保存の根が一緒だと気付いた。そんでもって,このエラーは 23 日に始まっていた。 MariaDB のアップデートのときに,何かまずいことをやらかしたに違いない (-_-;)。

 ログに含まれているテーブル名を確認したところ, `wp_postmeta`, `wp_posts`, `wp_redirection_logs`, `wp_sitemeta` の 4 つだった。 phpMyAdmin にログインして,無問題の wp_2_postmeta と wp_postmeta の構造をじっくり見比べてみた。 wp_postmeta の meta_id に AUTO_INCREMENT がないじゃん。ほかのテーブルも, ID に AUTO_INCREMENT がない。多分,このせいだ。

 何はともあれ,全データをバックアップの後,修復に取り掛かった。

  1. wp_postmeta テーブルを選択。
  2. メニューから「構造」を選択。
  3. 「操作」から meta_id の「変更」を選択。
  4. 「A_I」のチェックボックスをオンにしたのち保存。

 コマンドラインでやるなら,下みたいになるのかな。
ALTER TABLE `WordPress のデータベース名`.`wp_postmeta` CHANGE `meta_id` `meta_id`
BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

 `wp_postmeta` と `wp_posts` については,問題無しだったが, `wp_redirection_logs` と `wp_sitemeta` では下記のエラーが出た。
#1062: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘1’ for key ‘PRIMARY’

 `wp_redirection_logs` は単に Redirection プラグインのログなので,空にしてやってから,上の手順を再実行。テーブルを空にするのを CUI でやるなら,こんな感じになるんかね。
TRUNCATE `WordPress のデータベース名`.`wp_redirection_logs`;

 `wp_sitemeta` のほうは中のデータが絶対にいるので,ひとまず空にして,上の手順を再実行したのち,さっきバックアップした sql ファイルから `wp_sitemeta` の INSERT 文を切り出し,テーブルに再インポートした。

 Apache のエラーログから,問題のエラーが消えて,親サイトの自動保存も生き返った。めでたしめでたし。

 自己流の修復なので,あまりあてにしないでくださいませ m(_”_)m。

追記(9/6):
 BulletProof Security .50.8 へのアップデートのときに,どうやっても, “Network/Multisite BPS plugin Network Activation correction:” が消えないトラブルに遭遇した。で,フォーラムに相談に行ってきた。素早い対応をもらって解決したわけだが,これも AUTO_INCREMENT がらみだったようだ。どうも,2・3日前に読んだ phpMyAdmin のバグ関連の気がするのだが,真相は,藪の中。溜息。

 まあ,とにかく,消えるべきものは消えた。これで,安心して眠れるワ (^_^;)。

覚え書-#19。

 なんでだかすごく疲れているので,やったことのメモだけ。

 うちのサーバ OS は Windows7 HP SP1 (x86)。

  1. PHP 5.5.15 (php-5.5.15-Win32-VC11-x86.zip)
    —> PHP 5.5.16 (php-5.5.16-Win32-VC11-x86.zip)
  2. MariaDB 10.0.12 (mariadb-10.0.12-win32.zip)
    —> MariaDB 10.0.13 (mariadb-10.0.13-win32.zip)
  3. phpMyAdmin 4.2.7 (phpMyAdmin-4.2.7-english.zip)
    —> phpMyAdmin 4.2.7.1 (phpMyAdmin-4.2.7.1-english.zip)

 全部,単なるセキュリティアップデート。なので,速やかに対処。

不便なこと。

 ここんとこ,2つばかし,不便なことがあった。ひとつは, Windows7 上の IE11 関連,もうひとつは, WebCrow での phpMyAdmin のバージョン関連である。2つの不便のレベルはすごく違うので,同列には扱えないんだけどネ。

 Windows7 上の IE11 の件というのは,これ (Windows7 あるいは Windows Server 2008 R2 上で,基本認証のダイアログのパスワード入力欄に右クリックから貼り付けをすると,ちゃんと認証されない件)。これはよく知られた問題の一つらしい。 いや,別に KB2547752 の HotFix とかいらないし, CTRL+V しろっていうならするから,それは,いいんだけどさ。この件で,一番頭に来たのは,あたかもちゃんとできたように見えることなんだよね。右クリックから貼り付けると入力欄に ‘●●●●●●●●●●’ が見えるのよ。右クリック貼り付けはやらないでねっていうのは,割とよくある話なんで,それはさせないよというなら, ‘●●●●●●●●●●’ を表示しちゃいかんだろ。 Grrr。

 もう1個は, WebCrow の phpMyAdmin のバージョンが 2.11.x.x である件。このバージョンには,環境保管領域がない。当然, bookmarks 機能が使えない。とーっても,不便!日ごろ,どんだけ頼り切ってんだよ,ハハハ。

phpMyAdmin 環境保管領域。

投稿アップデート情報  追記(7/5)  追記2(7/9)

 phpMyAdmin には,バージョン 3.4.2. から環境保管領域と呼ばれるようになった記憶媒体がある。 phpMyAdmin にしょっぱなにログインすると,「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」というメッセージが出るので,名前にはなじみのある方も多いと思う。この機能を有効にすると, bookmarks, comments, SQL history, relations, PDF schema, MIME transformations を使えるようになる。まあ,この SQL サーバでやったことをまとめて覚えてくれている領域とでもいえばいいだろうか。なかなか,使いこなすところまでいかないのだが, bookmarks 機能なんかは,便利に使っているのものの一つだ。前にも,同名で記事を書いたことがあるのだが,それからだいぶ私の知識が進歩したと思うので,書き直すことにした。
 ところで, phpMyAdmin をサーバにインストールするについては,セキュリティ上,気を付けなければいけないことがたくさんあるが,ここではそれには触れないので, Official Documentation にしっかり目を通して,各自気をつけていただきたい。手前味噌だが,我が家の phpMyAdmin タグの記事もいくらかは参考になると思う。

 はじめて,環境保管領域を有効にするときの手順は以下のとおりである。

  1. create_tables.sql を使って, MySQL 上にそれ用のデータベースとユーザーを作る。
  2. 1. で作ったユーザに control user としての特権を付与する。
  3. config.inc.php をカスタマイズする。

 では,始めます。

  1. テキストエディタで create_tables.sql を開け,下の2行をアンコメントする。
    ————
    GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
    ‘pma’@localhost;
    ————

    phpMyAdmin に root 権限でログインし, create_tables.sql をインポートする。これで, phpmyadmin データベースとパスワード未設定の pma ユーザが作成される。

    注) 気休めかもしれないが, phpmyadmin と pma という名前は,サーバ独自の別の名前にしておいたほうがいいと思う。なにしろ, phpMyAdmin というのは有名どころのソフトで,攻撃も半端でないので。インポート前に, create_tables.sql を編集しておけばすむ話ですから。

  2. phpMyAdmin SQL クエリウインドウから,以下のステートメントを実行してやる。
    ————
    GRANT USAGE ON mysql.* TO ‘pma’@’localhost’ IDENTIFIED BY ‘pmapass’;
    GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO ‘pma’@’localhost’;
    GRANT SELECT ON mysql.db TO ‘pma’@’localhost’;
    GRANT SELECT ON mysql.host TO ‘pma’@’localhost’;
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO ‘pma’@’localhost’;
    ————
    当然ながら, ‘pmapass’ はちゃんと変えてネ。 phpmyadmin と pma も自分の使うものに変えるのを忘れないでください。
     
    phpMyAdmin をログアウトする。
  3. config.inc.php を開けて,以下の 20 行をアンコメントする。 pmapass , phpmyadmin , pma の件もお忘れなく。
    ————
    /*
    * phpMyAdmin configuration storage settings.
    */

    /* User used to manipulate with storage */
    // $cfg[‘Servers’][$i][‘controlhost’] = ”;  ⇐必要ならば,設定。
    // $cfg[‘Servers’][$i][‘controlport’] = ”;  ⇐必要ならば,設定。
    $cfg[‘Servers’][$i][‘controluser’] = ‘pma’;
    $cfg[‘Servers’][$i][‘controlpass’] = ‘pmapass’;

    /* 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][‘table_uiprefs’] = ‘pma__table_uiprefs’;
    $cfg[‘Servers’][$i][‘tracking’] = ‘pma__tracking’;
    $cfg[‘Servers’][$i][‘designer_coords’] = ‘pma__designer_coords’;
    $cfg[‘Servers’][$i][‘userconfig’] = ‘pma__userconfig’;
    $cfg[‘Servers’][$i][‘recent’] = ‘pma__recent’;
    $cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’;
    $cfg[‘Servers’][$i][‘users’] = ‘pma__users’;
    $cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’;
    $cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’;
    $cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’;
    ————

    phpMyAdmin に再ログイン。

    「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」というメッセージが消えたはず。

 おしまい!!

 これで,環境保管領域の機能が使えます。

追記(7/5):
 書き忘れ。
 アップグレードのときは,バックアップを取ったのち,新create_tables.sql を再度インポートする。前からあるものはそのままで,新しいテーブルのみ作ってくれるので,あとは,config.inc.php を手直しすればよい。
 もちろん,既にcontrol user は存在しているので,例の2行のアンコメントはしない。また, phpmyadmin と pma も自分の使うものに変えておくこと。

追記2(7/9):
 本日,くりくりさんへお返事を書いてて,ふと,1.と2.の間にタイムラグがあるのは,かなり怖いのかもと思った。うちのサーバの場合, MariaDB の接続ポートは外に対しては開いていないし,内向きに関してもユーザが私だけなので,そこまで神経質になる必要はないのだが,アクセス数が多く,必然的に悪意のアタックの絶対数の多いサーバの場合,1.と2.の間にタイムラグがあると, pma ユーザがノーパスでさらされる時間ができることになる。これは,かなり怖い。

 ということは,ユーザづくりは手作業でやって,パスワードと特権を設定したのち, create_tables.sql インポートするほうが,やっぱベターかな。

 ところで,うちの controluser の特権は,現時点で以下のようになっている。
————
GRANT USAGE ON *.* TO ‘pma’@’localhost’ IDENTIFIED BY PASSWORD ‘pmapass’;
GRANT SELECT, INSERT, UPDATE, DELETE ON pma_main.* TO ‘pma’@’localhost’;
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO ‘pma’@’localhost’;
GRANT SELECT ON mysql.db TO ‘pma’@’localhost’;
GRANT SELECT ON mysql.host TO ‘pma’@’localhost’;
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO ‘pma’@’localhost’;
————

phpMyAdmin で MySQL サーバの状態を見る。

図1 状態モニタ
図1 状態モニタ
 TODOS・何でも情報交換で phpMyAdmin での MySQL のログの確認みたいな話が出ていて,その件についてちょっと調べたので,覚え書として書いておく。
 
 phpMyAdmin 4.0 (多分) 以降を使っている場合,状態モニタというグラフのページがある。ログインして,テータベースを選択せずにメニューから, 状態 > モニタ と進むと,グラフが見える。サーバがまともに動いている場合,グラフだけで十分ではないかと思うんだが,必要ならここから slow_query_log や general_log を参照できる。
図2 無効
図2 無効
graphページで,「使用方法/セットアップ」をクリックしたときに,以下のメッセージ(図2も参照)が出るようなら, xxx_log の値を ‘ON’ に log_output の値を ‘TABLE’ に変更しなければいけない。
   slow_query_log および general_log は無効です。
   log_output はテーブルに設定されていません。
 
 もし,特権ユーザなら自分で値を変えられるが,普通は管理者に頼むことになる。まあ, root 権限でログインしないと,この辺は変えられないはずで,あんまり誰でも変えられるようだと,そのサーバは大問題だろう(爆)。
 正常動作しているサーバなら, general_log は必要ないかな?サイズが馬鹿でかくなって,他を圧迫する恐れがあるし。もしとるなら,サイズで切り出して,どこかに保管するような管理をする必要があるだろう。変数の値を変更するなら,何はともあれ, root 権限でログイン。
 
  コマンドラインからやる場合:
   SET GLOBAL slow_query_log = ON;
   SET GLOBAL log_output= TABLE;

 
  phpMyAdmin からやる場合:
   1.データベースは選択せずにメニューの変数をクリック。
    フィルタの「含まれている文字」フォームに “slow query log” その後,値を ‘ON’ に編集。
    保存
   2.フィルタの「含まれている文字」フォームに “log output” その後,値を ‘TABLE’ に編集。
    保存。
 
 一応,ログアウト。
図3 有効
図3 有効

 これで, root 権限でログインしたとき,状態モニタで, “slow_query_log” が参照できるようになった。
 
 これだけだと, mysqld を再起動すると,元の設定に戻ってしまう。設定を維持させるためには, my.ini/my.cnf の [mysqld] に以下の2行を付け加える。
   slow_query_log = ON
   log_output = TABLE
 
 前記のように, root 権限で状態モニタから “slow_query_log” が使えるようになったわけだが,ちょっと不便である。 WordPress の MySQL アカウントでログインしたときだって,使えないと意味ないでしょ。いつも root でログインなんて,非現実的だ。で,くりくりさんに TODOS・何でも情報交換で「こういう場合,一般ユーザにはどの程度権限を与えるべきでしょうか」とちょっと聞いてみた。「データベースだけでも参照はできますよ」というお返事だった。そんなわけで,以下のコマンドをやってみた。
 slow_log テーブルは mysql データベース上にあるので,
 
   GRANT SELECT (lock_time, start_time, rows_examined, db, rows_sent, query_time, sql_text, user_host) ON mysql.slow_log TO ‘WP-user’@’localhost’;
 
 これだと,非常に限定的な権限になるので,まぁ,許容可能かなと思う。
 
 現時点で,うちの WordPress の MySQL 用アカウントの権限は,下記のようになっている。
————
GRANT USAGE ON *.* TO ‘WP-user’@’localhost’ IDENTIFIED BY ‘passphrase’;
GRANT ALL PRIVILEGES ON WPdatabase.* TO ‘WP-user’@’localhost’;
GRANT SELECT (lock_time, start_time, rows_examined, db, rows_sent, query_time, sql_text, user_host) ON mysql.slow_log TO ‘WP-user’@’localhost’;
————

本家のお世話-#102。(phpMyAdmin 4.2.0へアップデート)

 phpMyAdmin 4.2.0 が出た。 ChangeLog はこんな感じ。アップデートした。

 phpMyAdmin-4.2.0-english.zip をダウンロード,ファイルを展開,旧の config.inc.php を展開でできた phpmyadmin フォルダにコピーし,すべてをアップロード。(詳しい話は「Windows7上にWamp系WebServerを建てる-#3。」を見てください。)

 ところで,新しい config.sample.inc.php では 4.1.x と比較して2行減り,7行が増えていた。
 2行減ったのは,
    /* First server */ のところで,
     /* Select mysql if your server does not have mysqli */
     $cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;
 ということは, mysql モジュールには完全にさようならってことかな?(ChangeLog には Added warning about the mysql extension being deprecated and removed the extension directive と書いてあった。)

 7行殖えたのは,
    /* Storage database and tables */ のところに
     // $cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’;
     // $cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’;

    新しいコンフィグオプションとして,
     /**
     * Whether to display icons or text or both icons and text in table row
     * action segment. Value can be either of ‘icons’, ‘text’ or ‘both’.
     */
     //$cfg[‘RowActionType’] = ‘both’;

 そんなわけで,アップロード後最初のログインで,下のほうに「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」というメッセージが出る。

 クリックして見に行くと,以下の警告が出ていた。

     $cfg[‘Servers’][$i][‘savedsearches’] … not OK [ Documentation ]
     Saving Query-By-Example searches: Disabled

 同時に,どうすればいいかという方法についても下記のように書いてある。

     Quick steps to setup advanced features:

     Create the needed tables with the examples/create_tables.sql.
     Create a pma user and give access to these tables.
     Enable advanced features in configuration file (config.inc.php), for example by starting
     from config.sample.inc.php.
     Re-login to phpMyAdmin to load the updated configuration file.

 examples/create_tables.sql を使ってテーブルを作るか,手動で作るかは,環境によりけりだと思うが,私の場合は,前からのものがあるので,手動でテーブルを2つ作った。(より詳しい話が必要な場合は,「Configuration storage」と「phpMyAdmin configuration storagephpMyAdmin 環境保管領域」を見てください。)
 そのあと,自分の config.inc.php に今回の変更を加え,さらに,付け加えた行のうち2行を下のようにアンコメントした。
     $cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’;
     $cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’;

 再ログイン。アラートは消えた。ミッション完了。

本家のお世話-#86。(phpMyAdmin 4.1.0へアップデート)

 phpMyAdmin 4.1.0 が出た。 「このバージョンから,最低でも PHP は version 5.3, MySQL は version 5.5 が必要です」ということで, ChangeLog もてんこ盛り。アップデートした。

 phpMyAdmin-4.1.0-english.zip をダウンロード,ファイルを展開,旧の config.inc.php を展開でできた phpmyadmin フォルダにコピーし,すべてをアップロード。(詳しい話は「Windows7上にWamp系WebServerを建てる-#3。」を見てください。)

 ところで,新しい config.sample.inc.php では次の行が増えていた。
    /* User used to manipulate with storage */ のところに
     // $cfg[‘Servers’][$i][‘controlport’] = ”;

    /* Storage database and tables */ のところに
     // $cfg[‘Servers’][$i][‘users’] = ‘pma__users’;
     // $cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’;
     // $cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’;

    最後の部分の the doc/ folder の話のすぐ上に
     /**
      * Should error reporting be enabled for JavaScript errors
      *
      * default = ‘ask’
      */
     //$cfg[‘SendErrorReports’] = ‘ask’;

 そんなわけで,アップロード後最初のログインで,下のほうに「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」というメッセージが出る。

 クリックして見に行くと,3つ警告が出ていた。

     $cfg[‘Servers’][$i][‘users’] … not OK [ Documentation ]
     $cfg[‘Servers’][$i][‘usergroups’] … not OK [ Documentation ]
     Configurable menus: Disabled

     $cfg[‘Servers’][$i][‘navigationhiding’] … not OK [ Documentation ]
     Hide/show navigation items: Disabled

 同時に,どうすればいいかという方法についても下記のように書いてある。

     Quick steps to setup advanced features:

     Create the needed tables with the examples/create_tables.sql.
     Create a pma user and give access to these tables.
     Enable advanced features in configuration file (config.inc.php), for example by starting from
     config.sample.inc.php.
     Re-login to phpMyAdmin to load the updated configuration file.

 examples/create_tables.sql を使ってテーブルを作るか,手動で作るかは,環境によりけりだと思うが,私の場合は,前からのものがあるので,手動で行った。(より詳しい話が必要な場合は,「Configuration storage」と「phpMyAdmin configuration storagephpMyAdmin 環境保管領域」を見てください。)
 それあと,自分の config.inc.php に今回増えた行を付け加え,さらに,付け加えた行のうち3行を下のようにアンコメントした。
     $cfg[‘Servers’][$i][‘users’] = ‘pma__users’;
     $cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’;
     $cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’;

 再ログイン。アラートは消えた。ミッション完了。

phpMyAdmin狙いの話。

 phpMyAdmin configuration storageのところの【注】に「phpMyAdmin狙いのクローラ」の話を書いているのだが,エラーログでわかるphpMyAdmin狙いクローラの使うディレクトリ名を調べてみた。

 自鯖のエラーログ,帰宅後は現時点でまだ2週間しかとっていないんだけど,それでも49個もあった。もちろん全部エラーが出てるんだけどね。以下の通り。
 まぁ,きちっと管理すればいいのだろうけど,人間が手作業でやることじゃないから,これらのディレクトリ名を避けるだけでも多少の効果はあるのじゃないかと思う。
    admin/mysql-admin
    admin/phpmyadmin
    admin/pma
    database
    datenbank
    db
    dbadmin
    muieblackcat
    myadmin
    mysql
    mysql-admin
    mysqladmin
    padmin
    php-my-admin
    phpadmin
    phpmyadmin
    phpMyAdmin
    phpMyAdmin-2
    phpMyAdmin-2.2.3
    phpMyAdmin-2.2.6
    phpMyAdmin-2.5.1
    phpMyAdmin-2.5.4
    phpMyAdmin-2.5.5
    phpMyAdmin-2.5.5-pl1
    phpMyAdmin-2.5.5-rc1
    phpMyAdmin-2.5.5-rc2
    phpMyAdmin-2.5.6
    phpMyAdmin-2.5.6
    phpMyAdmin-2.5.6-rc1
    phpMyAdmin-2.5.6-rc2
    phpMyAdmin-2.5.7
    phpMyAdmin-2.5.7-pl1
    phpMyAdmin-2.6.0
    phpMyAdmin-2.6.0-pl1
    phpMyAdmin-2.6.2-rc1
    phpMyAdmin-2.6.3
    phpMyAdmin-2.6.3-pl1
    phpMyAdmin-2.6.3-rc1
    phpmyadmin1
    phpmyadmin2
    pma
    PMA
    sqlweb
    typo3/phpmyadmin
    web/phpMyAdmin
    webadmin
    webdb
    websql
    xampp/phpmyadmin

本家のお世話-#20。(WordPress3.3へアップデート)

投稿アップデート情報  追記(2012/2/17)

 WordPress3.3日本語版がリリースされたのでアップデートをしようと思う。

 まずは,ドキュメントルート直下のWordPress3.2.1のファイルをバックアップする。
 ついでだから,データベースもバックアップしておこう。12/05の自鯖帰宅後DNS設定URL転送設定で手こずっていろいろそのままになっているが,そのうちの一つがphpMyAdminの設定。データベースのバックアップには使うから,この件もここで書いておこう。

  1. phpMyAdmin.confファイルを作り,/Apache2.2/conf/extra においてやる。中身は下記のようにする。
       Alias /phpMyAdmin "G:/phpMyAdmin/"
       <Directory "G:/phpMyAdmin">
         Options None
         AllowOverride None
         Order Allow,Deny
         Allow from 192.168.xxx.xxx  <<---- 我が家の場合はサーバ機からだけ許可。    </Directory>    <Directory "G:/phpmyadmin/libraries">      Order Allow,Deny    </Directory> httpd.confを開き,Supplemental configuration の区画に以下の2行を追加。    # phpMyAdmin settings    Include conf/extra/phpMyAdmin.conf
  2. phpMyAdmin-3.4.8-english.zipをダウンロードし展開する。
  3. 展開するとphpMyAdmin-3.4.8-englishフォルダが2重にできるが,中のほうのフォルダ名をphpMyAdmin に変更。
  4. config.sample.inc.phpをリネームしてconfig.inc.phpを作成。config.inc.phpを開き,以下の行の”にパスワードを設定する。なんでもよい。
       $cfg[‘blowfish_secret’] = ”
     フォルダphpMyAdmin を丸ごとG:/phpMyAdmin に移動する。ここで,Apacheを再起動する。新たにconfファイルを追加したので。
  5.  phpMyAdmin configuration storage の設定が必要な場合は,phpMyAdmin configuration storagephpMyAdmin 環境保管領域を参考にしてもらいたい。
  6. ブラウザで /phpMyAdmin/ にアクセスし,データベースをバックアップ。

 ここまで,下準備が済んだら,サイトネットワーク管理者になり,「ダッシュボード」>>「ツール」のページに行き,今すぐアップデートのボタンをポチッと。

 最上部に「更新していただきありがとうございます ! ネットワークの更新ページへ移動して、すべてのサイトをアップグレードしてください。」というメッセージが出たので仰せに従い移動して,ネットワークの更新ボタンをクリック。
 「さまざまなファイルを追加できるアップローダーをひとつのメディアアイコンで開くことができるようになりました。また、ドラッグ & ドロップでアップロードが簡単になりました。」ということで,メディアアイコンが1つになった。
 というか,なんかメニュー関係があちこち変わっているんだね。WordPress 3.3「Sonny」に開発者関係でもいろいろあったんで,使っているプラグインとかで動かないものがあったらどうしようと思っていたけど,今のところ不具合には気づかない。ホッ。

phpMyAdmin configuration storage

投稿アップデート情報  追記(2014/7/4)

 本家のほうに書いたが,15日(水)に自鯖のアップデートをした。このときに,phpMyAdmin-3.4.1-english.zip ————> phpMyAdmin-3.4.2-english.zipにしたら,右の図1の赤丸部分のような[注意]が出るようになった。というか,ここんとこ出てたんだが,ページのリニューアルが終ってすっきりしたので目立つようになった。リンクをクリックすると図2のようなページが表示される。日本語対応版だと「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」と出るらしい。
 これ,前は「Linked Tables Infrastructure」と言ってたものとほぼおんなじものらしいが,そのころは設定してなくても,[注意]なんかでなかったよな。出てたけど気づかなかっただけかしらん。

ゴリゴリ使えるほどSQLについてわかっていないのだが,これをやっておくとリレーションやら,ブックマークやら使えるようで,今後,勉強をやっていく上には便利そうなので,[注意]を消すために努力してみた。やり方は,図2の下の方に書いてある。

以下の通り。

  1. 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. なんて記載もあって,いろいろと悩みが尽きない。とはいえ,今のところ,デフォルトのままで問題なく動いているので,変えていない。
  2. 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. 図3のように configuration storage用のデータベース(phpmyadmin)をアドミン特権で作成。このデータベースにphpMyAdminのscriptフォルダ内にあるcreate_tables.sqlをインポートして,図4のようにテーブルを作成する。
  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’;
  5. 1度ログアウト後,再度ログインすると,図1のメッセージは消えていた。成功。

【注】 ところで,phpMyAdmin狙いのクローラはよくあるので,せめて,ディレクトリ名とエイリアス名(phpmyadmin),データベース名(phpmyadmin),ユーザ名(pma)およびテーブルの接頭辞(pma)くらいは,別のものに変えておいた方がいいと思う。そのためには,create_tables.sqlをインポートする前に,中の書き換えを行っておく必要がある。ディレクトリへのアクセス制限とかパスワードの設定とかは当然だが。
クローラ除けに関してだが,我が家の場合だと,もともとが自鯖で使うのは自分だけなので,用のないときはphpMyAdminのパスそのものを切り離している。

追記(2014/7/4):
Configuration storage(環境保管領域)について,新しい記事を書いた。セットアップに関しては,そちらを見てください。