覚え書-#17。

 いつも忘れるので,メモ。

 デフォルトままのだと, http://o6asan.com/?author=1 をやると登録ユーザ名が見えてしまう。これは,管理ページのプロフィールで,表示名をニックネームとかに変えてても同じ。

 これを避けるために, Edit Author Slug プラグインを使って,管理ページのプロフィールで変更する。変更後は,プラグインは停止・削除してかまわない。

今日の鳥さん-ガビチョウ9態+動画

 茶の間の窓からガビチョウを撮影した。苦節1年,やーっとダヨ(苦々々-泣)。家の近辺では,昨年初めて気づいた。実のとこ,やつは特定外来生物の一つだから,厄介者だよね。とはいえ,それはガビチョウの責任ではないもの。

 ウグイスの敵ともいえる性質で,鳴くのはよく聞こえるが,姿を見るのは難しい種類のようだ。そんなわけで,やっとこ,撮影出来て,嬉しいのでありまする(爆)。

本家のお世話-#108。(PHP5.5.15へアップデート)

 PHP5.5.14 が Jul-24 01:03:48UTC に出たので,アップデートした (Windows7HP+SP1(x86)用)。 ChangeLog.

 PHP 5.6.0RC3 が予定より遅れている。なんかあってんのかな?

 ところで, Changes with Apache 2.4.10 の “Fix a memory consumption denial of service in the WinNT MPM” というのを読んだので,使っていた回避策をやめてみたが,うまくいかなかった。次の日に,回避策を戻す羽目になってしまったワイ。

本家のお世話-#107。(Apache 2.4.10へアップデート)

 Apache HTTP Server 2.4.10 が出たので,アップデート。セキュリティパッチが,5個含まれているようだ。 mod_authnz_fcgi というモジュールが増えたので, httpd.conf も以下の1行が増えている。
    #LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
 Windows 版では, pcre が 8.34 から 8.35 に, APR が 1.5.0 から 1.5.1 にアップデートされている。

 VC11 用の httpd-2.4.10-win32-VC11.zip (17 Jul) を我が家用 ( Windows7 x86 ) にダウンロード。 Apache 2.4.x conf 情報が必要な方は,「Windows7上にWamp系WebServerを建てる-#1。」を見てください。

例のベネッセの件。

 しかし,なんだって,データがそう簡単に持ち出せたんだろうとか思ってたんだが, connect24h さんが「公知の事実になっちゃったよ。」ってつぶやいてて,フムフムとか,調べてたら,「ファイル転送の「MTP」と「MSC」」のことが絡んでるみたいで,ベネッセの件もさることながら,セキュ担当の現場大変だろうなと,お察し申し上げる。

 connect24h さん流れで,つぶやき見てたら,「システムエンジニアなら、なおさら、知っててもやっちゃいけないコトでしょう?」ってのがあって,まさしくその通りなんだが,その本人の倫理観に期待するというのは,悲しいことに時代遅れというか,この訳の分からないグローバリゼーションの時代においては,日本にだけしか通用しないという考え方なので,というか書いててため息が出てしまう。

 いつもながらのもじり。「母さん、私達のあの日本、どこに行ったんでせうね?ええ、ずっと前に小泉八雲が、あれほど感嘆したあの日本ですよ。」

追記(7/29):
 なんか,結構, MTP で来る方がいるので,もう少し書いておこうかなとか思ってしまった(爆)。

 MTP モードそのものは,FOMA でも対応機種はあった。私のふるーい SH906i でさえ対応している。
 ただし,私は使ったことがない。何しろ, FOMA に SD カードも挿さないような人間なので(汗)。で,自分を基準に考えてはいけないが(滝汗),たぶん,他の人もあまり使っていなかったのではないかと思う。そもそも,デフォルトでは, MTP モードになっていなかったし,制限もきつくてあまり役立ちそうに見えなかったし。

 だもんで,今回の犯○もスマホをつないでびっくりしたのではないかな,なにしろ,名前は同じ MTP モードでも,使い勝手が全然違うみたいだから。割りと,ベテランの SE だったようだから,逆に衝撃が激しかったりしてね。

 だからってそれで申し開きはきかへんでー。

雨の七夕。

 今年は空梅雨かと思っていたら,終わりごろになって,すごい降りですワ。今現在は,うちの辺,日が射してます。そうはいっても,トンでも台風8号(ノグリー)くんも近づいてるし,被害が出ないといいですネ。皆さまも準備万端,お抜かりなく。

 ところで,昨日は,雨の七夕でしたね。しかし,七夕(しちせき)をたなばたって読ませるのは,無理やりも甚だしいな。たなばたって棚機でしょうからね。織姫さんとは関係あるけど,彦星さんとは関係なさそう。まぁ,牽牛織女の話はお隣の国から来たもんでしょうが,牽牛ってどうも職業的にも我が国的ではない気がする。漁業とか農林業のほうが旦那の伝統的職業としては,我が国的だよね。牛を牽いていたとしても,農作業用の牛ならピンと来るけど,牽牛ってっとイメージ違うよなぁ。皆さんの頭の中はいかがですか。機織りは昔から大事な仕事だったろうから,それを祭る行事ってのは昔からあったんだろうと思う。それが,向こうの伝説に引きずられて七夕とくっついたのかな。牽牛織女の話って,向こうのもんだとしても,確か,万葉集にも七夕関連の歌ってあったから,相当昔に入ってきてたようだし。

 考えてみると,七夕は7日の夕べだから,別に7月じゃなくてもいいよね。ただ,伝説は空のお星さんと関連付けられてるから,1月の7日っていうわけにもいかんな。ご両所が見えないよ。それと,考えてみると人日,上巳,端午,七夕,重陽ってのは,すべて陽が重なってる。んで,陽が重なりすぎると逆に不吉だから,おはらいをするんだろう。そうすると,8月の7日とかもまずいんだろうな。

 でもさ,伝説に即してなら,新暦(グレゴリオ暦)の7月7日にたなばたをやるって,どんだけ意地悪な人の策略よって思うんだ。梅雨の真っただ中じゃん。1年に一度しか会えないのに,ほぼ会えない時期に設定したことになる。まあ,お盆ももともとは7月15日は満月で,盆踊りなんかも天気に恵まれれば,煌々たる月の下でやるわけだ。十三夜から十六夜にかけて,人工照明がなくても明るくて,雰囲気もあり,情緒だけでなく実益もあったんだと思う。しかし,お盆の行事は盆踊りだけではないし,今の時代なら,月の役目は人工照明でまかなえるから,その辺,別にいいと思うけどさ。たなばたはねぇ。星が見えなきゃ話にならん。

 お月見は今でもちゃんと,十五夜にやるじゃん。たなばたも,ちゃんと上弦の月頃の,ご両所を見やすい時期にやるべきでないんかい?
 とはいえ,昨今,日本の空は明るすぎて,いつやってもあまり変わらないのかもしれない,という悲しい現実もある。

 兼好さんでないけど,つれづれなるままによしなしごとを書き綴っちゃいましたー(笑)。ついでに縦書き集の宣伝リンクも入れとこ(爆)。

No-IP からメールが来たよ。

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

 ネットラジオ用に No-IP を使ってるもんだから,メールが来た。タイトルは ★ Update to Microsoft Takedown – All Domains Restored ★。もちろん, “Microsoft takes on global cybercrime epidemic in tenth malware disruption” の関連ね。 GIGAZINE にも1日に関連記事が出てたよね。

No-IP からのメール

No-IP からのメール

 ここには,どっちの味方のコメントも書かないことにするが,ユーザとしては,「No-IP くん,もう大丈夫かい?」とだけ聞いておきたい。

追記(7/11):
 本日, No-IP から2通目のメールが来た。

No-IP からのメール#2

No-IP からのメール#2


 ”Update: Details on Microsoft Takeover” に,経緯が書かれている。

 いずれにしても,ご苦労さん&おめでとうさん, No-IP 。

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’;
————