redux フォルダ。

 今朝ほど、 wp-content\uploads フォルダに redux という見知らぬフォルダがあるのに気づいて驚いた。タイムスタンプが 11/13 の 15:05:11 になってる。なんじゃこれは?なんでこんなものがある?
 一生懸命、サイト上のファイルを調べた結果、どうやら AMP for WP – Accelerated Mobile Pages の作ったものらしいことが分かった。
 ホッ。オイ、 ChangeLog はちゃんと読もうな ☞ 自分!

ウギッ, .htaccess のドットが一個落ちてたぜ。

 今年も,ボチボチ蛍の季節が来るなぁ,とか思いながら,去年はいつ頃だったっけ,と我がブログを調べてたんだが……。去年の記事上のビデオが見れないじゃん。えっ,どうしてよ。

 それについては,タグを <object> から <video> にして見えるようになったんだが,よく調べたら, flv ファイルが全部ロードされないみたい。どうなっとんの?

 えっと, flv の不具合については,常々 BPS を疑うことにしている,アヘッ。で,案の定 .htaccess で,ドットが 1 つ落ちてましてん。 flvplayer\.swf としなくてはいけないのに, flvplayer\swf になってた。ウグッ!

 てなわけで, flv は,無事ロードされるようになりましたとさ。オソマツ。

WordPress のプラグイン bbPress で掲示板を作る。

投稿アップデート情報  追記(8/16) 追記2(11/4) 追記3(2016/2/27)

 サイトの CMS を WordPress にまとめて以来,掲示板をどうするかということについて悩んできた。
 掲示板に望む役割は,2つである。ひとつは,もちろん,一般的な掲示板の役目。もう一つは,本家の不具合―例えば, 403 forbidden, 503 Service Unavailable とかいう話―の連絡板としての役目である。したがって,設置場所は,自鯖以外でないと意味がない。

 英語サイトでは, WordPress のページのコメント機能を使ったものを作っていた。これは,上記の希望のどちらも満たしていない。しかし,たいして書き込みもない掲示板だったので,ほったらかしにしてあった(爆)。
 日本語のほうでは,流れで, Joyful Note を使ったものを Xrea 上に作っていた。こっちのほうは,2つとも望み通りになっていたのだが,2月にドメイン移管をしたら,移り先のサービスに Perl cgi がなくて使えなくなってしまった。仕方がないので, PukiWiki で作ってみたのだが, PukiWiki を使い慣れていないこともさることながら, PukiWiki のコンセプトそのものが掲示板になじまないようで,なんとも,情けない姿をさらしていた。

 10日くらい前に,突然ひらめいた。「簡単じゃん,WordPress.org のフォーラムみたいなもんを作ればいい」。早速,サイトのソースを眺めてみたら, bbPress というのが見つかった。そんなわけで, NetOwl 提供の WebCrow に, bbPress を使って掲示板を作ったよ。

 ところで, bbPress に関する情報というのは,ネット上にいやというくらい転がっているのだが,間違っても,古い情報を参考にしてはいけない。 bbPress はすごい勢いで変化してきてみたいで,古い情報は役に立たない。現在の bbPress は,完全に WordPress の一般的なプラグインである。したがって,そのインストールも ごく普通の plugin のインストールなので,他の情報に惑わされないこと。

 私が, bbPress についてカスタマイズしたのは,以下のところだけである。

  • 場合によって,とても読めないくらい字の色が薄いので, bbpress/templates/default/css/bbpress.css の中の3 か所で, #ccc & #bbb を # 333 に書き換えた。

         #bbpress-forums .status-closed,
         #bbpress-forums .status-closed a {
             color: #ccc;
     
         .bbp-forum-header a.bbp-forum-permalink,
         .bbp-topic-header a.bbp-topic-permalink,
         .bbp-reply-header a.bbp-reply-permalink {
             color: #ccc;
     
         span.bbp-admin-links a {
             color: #bbb;

 bbPress には画像添付の機能がないので, GD bbPress Attachments を使うことにした。ユーザ登録しなくても使えるように,以下の2つのフィルターをカスタマイズした。

  • gd-bbpress-attachments/code/attachments/class.php の中にある。
     return apply_filters('d4p_bbpressattchment_is_user_allowed', $allowed);
         ↓
     return apply_filters('d4p_bbpressattchment_is_user_allowed', true);
     
     return apply_filters('d4p_bbpressattchment_is_hidden_from_visitors', $value == 1);
         ↓
     return apply_filters('d4p_bbpressattchment_is_hidden_from_visitors', false);

 困っているのは,2プラグインとも完全な日本語化ファイルがどこにもなかったこと。一応,訪問者に見える部分だけは訳したのだが, bbPress なんて 1000 行以上もあるんだよ。完全訳は,掲示板のお披露目には,間に合わなかった。いつになるんかなぁ,我ながら自信がない (;´o`)。

 それと,「案内サピプッ」の6文字を Untitled1_sub.woff に追加した。 FontForge on Windows が安定して動くようになってて助かった,パチパチ。どういうわけか,今回は WOFFコンバータがちゃんと動かなかったので, Untitled1_sub.woff の更新には, ttf to woff converter を使った。

 古いコメントは,すべて新しい掲示板に移動した。

  • 注) bbPress はユーザーがコメントを弄ると,その時間をトピックごとに覚えていて (_bbp_last_active_time) ,経過時間として表示する。これは,移動した古いコメントには,そぐわない情報である。 WordPress の管理画面からは,この値を書き直せなかったので, SQL データを書き換えてやった。

 任務完了!! 掲示板はこちらです。お気軽にご利用ください m(_”_)m。

追記(8/16):
 こんなの見つけた。 https://translate.wordpress.org/projects/bbpress
 すごいなぁ。いろいろ時代に遅れてるなと感じてしまう。アクセスしてみよう!!

追記2(11/4):
 うちの掲示板はほとんどカスタマイズしていないが, bbPress では何種類かショートコードが使えるので,役に立つかもしれない。 bbPress のショートコード

追記3(2016/2/27):
 bbPress の日本語ファイルは, Translating WordPress から自動でダウンロードされる。従って,プラグインの language フォルダには, po も mo もいらない。いつからかははっきり記憶していないので,この機能が働く最低バージョンは書けないが,現時点ではうまく動いている。この追記を書いている時点での最新は WP4.4.2 と bb2.5.8 である。

覚え書-#17。

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

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

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

Google AdSense-#4。

 Google からサイト運営者向けプラグイン(ベータ版)というのが来たので,入れてみた。ベータ版ということで,不具合があるかもしれないね。

  1. まずは,上記のアドレスにアクセス。
  2. 記載に従い, WordPress のダッシュボードから Google Publisher Plugin (beta) をインストール。
  3. あとは,ここを見ると詳しく書いてある。
    「Google サイト運営者向けプラグインを設定する」

    うちの場合は,すでに ウェブマスター ツールを使っているので, [Get started(設定開始)]をクリックしたら,
    ———————————————————————————————
    Verify your site

    For security reasons we need to verify your site using Google Webmaster Tools (learn more).

    You own http://MySite
    You wish to use the Google Publisher Plugin on http://MySite

    If this is correct, please click the verify button.
    ———————————————————————————————
    というのが戻ってきた。ボタンを押すと,確認は無事終了。

  4. 「AdSense アカウントの情報を確認する」に進む。 AdSense もすでに使っているので,
    + すでに AdSense のアカウントをお持ちの場合: サイト運営者情報を確認する
    をやる。

    次に進む前に WordPress の Widgets に行って,広告ユニットをサイトから外す。

    [Manage adds]をクリックしたら下記が表示された。

    Admin on HTTPS, site on HTTP
    ———————————————————————————————
    The Google Publisher Plugin loads a preview of your site inside the admin panel to enable you to place ads on your site. However, your WordPress admin panel is delivered over HTTPS while your site is delivered over HTTP. This will cause your browser to give a warning about mixed or insecure content, and the preview may not be displayed.
    To enable the Google Publisher Plugin to work correctly with your site, either:

    Configure your site to be delivered over HTTPS (recommended)
    Use the browser prompts or the shield icon in the address bar to enable insecure content on this page

    For more information about this issue, please see our Help Center.
    ———————————————————————————————
    間に合わせで,下記をやることにする。
    Use the browser prompts or the shield icon in the address bar to enable insecure content on this page

  5. も一度[Manage adds]をクリック。
    サイトに AdSense 広告を配置する

    ここに配置できるよという+マークがいっぱい出てくるが,元の形の広告(のつもりだったが,レスポンシブになっていて,予想以上に馬鹿でかい長方形が表示されることがある)を一か所にだけ配置して,保存して開始。

 で,結果。 ———-> 気に入らないので,元に戻した。アワワワ。

本家のお世話-#90。(Opcacheを使う)

 先の一昨日,自鯖上で, Opcache を有効化した。

 インストール以来,種々のトラブルをもたらしたBulletProof Security」だが,結構,有用な情報もくれた。例えば,これの System Information のページで見たことから,セキュリティ強化のために, php.ini の以下の値を変更した。

デフォルト カスタム
output_buffering = 4096 output_buffering = Off
expose_php = On expose_php = Off
mysql.allow_persistent = On mysql.allow_persistent = Off

 また,同じページで,「Opcode Cache」というのを見て,そういえば, OPcache が PHP5.5 にバンドル とか書いてあったなと,思い出した。で,やってみたわけ。

 php.ini の変更点は,以下の通り。

 「zend_extension=php_opcache.dll」という行を Windows Extensions の最後に加える。以下の6行はアンコメントし, ここのページの指示 にしたがって値を変更する。のちのち自鯖用にもっといい値を見つけられるかもしれないが,今のところは,指示どおりが無難だろう。

デフォルト カスタム
;opcache.enable=0 opcache.enable=1
;opcache.memory_consumption=64 opcache.memory_consumption=128
;opcache.interned_strings_buffer=4 opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=2000 opcache.max_accelerated_files=4000
;opcache.revalidate_freq=2 opcache.revalidate_freq=60
;opcache.fast_shutdown=0 opcache.fast_shutdown=1

 うちの場合, CLI 版 PHP は使わないので,「;opcache.enable_cli=0」はこのまま。

 ビフォア&アフタで Apache のベンチマークを採ってみた。 ApacheBench
 ベンチマークでも,若干良くなっているように見えるが,自 LAN 内での体感は,もっと良かった。うちのサイトは WordPress で動いてるから, PHP のキャッシュの効果は,多分,大したもんなんだろう。

Details
Details
Files
Files

 APC Control Panel ってのがあるらしいので, Opcache にもあるのかなと思って探してみたら, Opcache Control Panel (実体は ocp.php だけ) というのがあって,ブラウザから Opcache を操作出来て便利。なんだけど, phpinfo 関数を有効にしないと動かないので,アクセス制限はかけておかないといけないよ。

 くりくりさんが,「APC / OPcacheについて」というページを教えてくれた。こういう比較サイトはほかにもいろいろあるから,やってみる前にググって見るといいと思う。

Jetpack の不具合について。

 MariaDB に移行した後, Jetpack が突然 エラーを吐くようになった。親サイトのダッシュボードから WordPress.com のスタッツにアクセスできなくなってしまったのだ。どうしても解決できなかったので, Jetpack Support Forum に行き,「Jetpack: site_inaccessible」をたてた。3日後,今度は WordPress.com 日本語フォーラムで,「ルートサイトと昔のテストサイトのコンフリクト。」というのをたてた。両方に顔出ししたのは,2つが全く別物だと思っていたからだが, Jetpack Support Forum で問い合わせが見当たらないといわれたときには驚いた。それに,私の英文の書き方が言葉足らずで,マルチポストをやった形になってしまった(^_^;)。彼らからもらったヒントが役に立ったわけだから,許してもらおう(汗)。

  1. Jeremy Herve が, define( 'JETPACK_CLIENT__HTTPS', 'NEVER' ); を使うといいかもしれないと教えてくれたが,うまくいかなかった。
  2. Richard Archambault が SSL が関係しているかもしれないので, SITE_URL を調べてみるように言ったので,チェックしたが, http://o6asan.com になっていた。これなら問題ないはず。
  3. naokomc が, WordPress.com とうまく連携できていない場合,自分のサイトでも所有権がないように見えるのだと教えてくれたので, Richard が言っていた SSL のことをもう一度考慮してみることにした。
  4. で, define( 'FORCE_SSL_ADMIN', true ); をコメントアウトしてやってみた。わぉ!! なんと,あっさり行ったよ。

 結局のところ,一番初めの authorization のときは,環境によっては, define( 'FORCE_SSL_ADMIN', true ); のままだとうまくいかないことがあるということだ。WordPress.com との連携完了後, define( 'FORCE_SSL_ADMIN', true ); を元に戻したが,無問題だった。

 というわけで,不具合は解消した。しかし,分からないのは,なんでこれが起こったかなんだよね。それについては,いまだに納得がいっていない。

今年も,ブログに雪が降る。

 去る28日,わが町にこの冬初の雪が降りましたが,本日より,ブログにも雪が降っております。昨年は,年末からでしたが,今年は,もう12月初めから降らせてます(笑)。

 これは, Jetpack プラグインの機能の一つですが,スクリプトそのものは独立してあるようです。そういえば前に TODOS にも書きましたネ。

WordPress に BulletProof Security を入れてみた。

投稿アップデート情報  追記(12/2)~~追記4(2014/7/14)  追記5(7/16)

 WordPress のセキュリティ強化のために「BulletProof Security」というプラグインを入れてみた。インストールは簡単だが,有効化するについては,いくつか気を付けたほうがいいところがある。

  1. Network / Multisite 上で使用可能なプラグインだが,「ネットワークで有効」にしてはいけない。「ネットワークで無効」のまま,親サイトでだけ有効にする。
  2. BulletProof Security は .htaccess を使うので,当然ながら,サイトの .htaccess が書き換えられてしまう。前もって, WordPress ルートと wp-admin 内の .htaccess をバックアップしておこう。
  3. .htaccess を利用するので, BulletProof Security が自分の WordPress で使えるかどうかは,サーバのコンフィグ次第ということだ。うちの場合だと,途中でエラーが出たので, Apache のログを見て, httpd.conf の <Directory> にある AllowOverride ディレクティブOptions=Indexes を付け加えた。

 ところで, BulletProof Security のページで, Sucuri SiteCheck Scanner を見つけたので,スキャンしてみた。怖いものは見つからなかった。まあ,「Sucuri SiteCheck は無料のリモートスキャナです。できる限り正確な情報をお届けできるように努めていますが,スキャン結果に間違いがないことを保証するものではありません。」てスキャンのサイトに書いてあったけど,それは当たり前のことだから。

追記(12/2):
 なんか ‘Broken Link Checker’ プラグインが下記のメールをくれましてん。自ブログの存在するファイルのことなので,ビックリ。

   Broken Link Checkerは、あなたのサイトに新しいリンク1がリンクエラーと検出されました。
   リンクエラーの一覧 :
   リンク テキスト: Asus ,HCL X51C (T12C) Motherboard schematic
   リンクのURL : /blog-j/files/Asus_HCL_X51C_(T12C).pdf
   ソース : ノートをWin8 Proにアップグレード。
   すべてのリンクエラーを見ることができます: http://ダッシュボードのツールの URL

 何で,どうして??? 10/16 にアップロードしてから全然変えてないし,とか思って,ブラウザからアクセスしたら,別のエラーが出た。こんなの:
   o6asan.com 403 Forbidden Error Page
   If you arrived here due to a search or clicking on a link click your Browser’s back button
   to return to the previous page. Thank you.

 調べたてみたら, ‘BulletProof Security’ プラグインが吐くものだった。さらに調べて ‘BulletProof Security’ は,ファイル名に ( ) があると拒否する設定になっていることがわかった。何かセキュリティ上でまずいことでもあるのかな。

 安直に, Asus_HCL_X51C_(T12C).pdf を Asus_HCL_X51C-T12C.pdf に変えて解決 (^_^;)。

追記2(12/3):
 早速,Version:.49.7 へのアップデートがあり,使えないと書いたばかりの「ネットワークで有効」ができるようになった。もちろん,前のままの方式でも使える。
 追記(12/2)の補足だが,ファイル名に半角空白が入っているのもダメなようだ。

追記3(12/4):
 なんか毎日ここに追記書いてるよー(苦笑)。 ‘BulletProof Security’ 君,今度は,わがサイトの Flash Movie をブロックしてやんの。お蔭さんで,高住神社のなんかで,「ムービーが未ロード」とか出た。ご本尊の Adobe Flash Player がらみでもよくある話なんで,疑っちゃったじゃないの,今回は無実なのに-ハハ。
 解決方法は, Flash swf 403 error – Flash slideshow blocked で,どんぴしゃり。 Root の .htaccess に我が家の swf を足してやった。こんな感じ。太字のイタリックですね。
   RewriteRule .* index.php [F,L]
   RewriteCond %{REQUEST_URI} (flvplayer\.swf|timthumb\.php|~~|thumbs\.php) [NC]

追記4(2014/7/14):
 最近気づいたんだが,サーバのログにかなりな数の 500 Internal Server Error が出ていた。しょっぱなの見た目では, font-face の IE 用ハックのせいに見えた。しかし,最終的にわかったのは, BPS の .htaccess の フィルターから来ているということだった。 URI の最後に ? があるとまずいようだった。それで, WordPress 日本語フォーラムと BulletProof Security Free フォーラムに相談に行った。おかげで,無事,解決。パチパチ!!

 より詳しい話は,相談先の下記2サイトをご覧ください。
   IE11(Win8.1),IE10(Win7)で,アクセスしたとき,font.eotについてエラーがでる。
   font-face 500 Internal Server Errors

追記5(7/16):
 我が家の http_error_log.txt には,うちのサイト関連の 403 Forbidden Error がズラッと並んできた。 Broken Link Checker が HEAD メソッドを使うせいである。 Broken Link Checker が HEAD メソッドを使うんだということは 2012.12.29 の TODOS の話題で知っていたが,両プラグインとも使い続けたかったので,あきらめて事態を受け入れていた。どうすりゃいいのか,わかんなかったし(爆)。

 ところが,今回 500 Internal Server Error の件で, .htaccess を覗いていて,下記の文言を発見。ワォッ!!
# REQUEST METHODS FILTERED
# This filter is for blocking junk bots and spam bots from making a HEAD request, but may also
# block some HEAD request from bots that you want to allow in certain cases. This is not a
# security filter and is just a nuisance filter. This filter will not block any important bots
# like the google bot. If you want to allow all bots to make a HEAD request then remove HEAD
# from the Request Method filter.
# The TRACE, DELETE, TRACK and DEBUG request methods should never be allowed against
# your website.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|DEBUG) [NC]
RewriteRule ^(.*)$ - [F,L]

 これって,こっから, HEAD を消しちゃっていいってことだよね?早速,ルートの .htaccess から HEAD を消した。 wp-admin のほうは,そのまま。 Broken Link Checker はここで HEAD をやる必要ないからネ。

 思惑通り,ことは進んでいる (*´▽`*)。

Akismet 停止。

 出先から戻って, WordPress のコメントをチェックしたら, Akismet がエラーを吐いてて,ビックリ。おたおたして,ネットで解決策を探してるうちに,何もしないのに,ヤツは普通に動き出した。 Akismet blog によれば, API outage – November 28th なんだってサ。というわけで,今日のエラーは私のせいじゃなかったのネー。ああ,よかった。 Akismet 君,脅かすんじゃねーよ,メッ!!

 ところで,本日昼前,初雪でしたワ。すぐに止んだけど。ワーーーォ。