カテゴリー
WordPress

本家のお世話-#118。(HTTP/2 対応のための HTTPS 化-#2)

The same article in English

 先の記事の続き。私は,サブディレクトリ型の WordPress マルチサイト・ネットワークを使っているので,単体の WordPress の HTTPS への移行とは若干異なっているところがあるかもしれない。
 この機会に,ほかにも若干手直ししたところがある。

カテゴリー
WordPress

www39.atpages.jp,絵文字は出るけど,いまだにホッケの漢字は出ない。

 これ(⇐つまり表題の件だが),なんでかってっと,絵文字は,表示のときには,結局,画像扱い。 s.w.org/images/core/emoji/ に png が置いてある。まあ,下のには,ところどころに文字のままのも交じっているが……

カテゴリー
WordPress

WordPress4.3 が来たよ。

The same article in English

 お盆,終わっちゃった。今年も,我が母方の親族では, 8/15 にパーティをやった。正にその日の朝, EX-V7 が壊れちゃった。 Grrr,ベリーバッドタイミング。そんなわけで,パーティの写真はあきらめた。どうやっても,「手ブレ補正ユニットが使用できません」というエラーメッセージが消えなかったのだが,このメッセージ, EX-V7 ではよくあるやつらしい。修理に出さなくてはいけない類の故障らしくて,高くつくらしいという情報をネットで得た。このデジカメを手に入れたのは, 2007.7.9 だから, 8 年前になる。どう思う?新しいのがいるって主張する絶好の機会じゃん。ネッ!(爆)
 んで,一昨日, DSC-WX220 を注文した。ほんでさっき,佐川さんが持ってきたよ~, ( ›◡ु‹ )。

カテゴリー
WordPress

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

The same article in English

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

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

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

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

カテゴリー
WordPress

WordPress 上で utf8mb4 を使う話。

The same article in English

 昨日,WordPress 4.2 がやってきた。 WordPress の Updates ページから更新したが,我が家は,マルチサイトタイプなので,その後, Upgrade Network が必要である。うちの SSL は自前認証局を使っているので, Upgrade Network をやる前に, wp-includes/certificates/ca-bundle.crt に自前 CA のデータを書き加えてやっておかないといけない。同様に下記の 2 行も wp-includes/class-http.php に加えてやる必要がある。これは,クライアント認証をクリアするためね。

  • curl_setopt( $handle, CURLOPT_SSLCERT, 'clientcert.pem の絶対パス' );
    curl_setopt( $handle, CURLOPT_SSLKEY, 'clientkey.pem の絶対パス' );

 この辺の話は,必要なら「WordPressでの「SSL3_READ_BYTES:sslv3 alert handshake failure」を解決。」を参照してください。

 ところで, WordPress 4.2 によると, WordPress は utf8mb4 をサポートするようになったようだ。ということで, JIS X 0213 の第 3 ・ 4 水準漢字の 4-byte になる下記の文字も記事内で使えることになった。ということは,いろんな絵文字も使えるわけだ。
 実は, 2013‎.5‎.22 に,この件やってみたんだけど,記事内では下記の文字は表示できなかった覚えがある。いや,スンバらしい。
𠀋 𡈽 𡌛 𡑮 𡢽 𠮟 𡚴 𡸴 𣇄 𣗄 𣜿 𣝣 𣳾 𤟱 𥒎 𥔎 𥝱 𥧄 𥶡 𦫿 𦹀 𧃴 𧚄 𨉷 𨏍 𪆐 𠂉 𠂢 𠂤 𠆢 𠈓 𠌫 𠎁 𠍱 𠏹 𠑊 𠔉 𠗖 𠘨 𠝏 𠠇 𠠺 𠢹 𠥼 𠦝 𠫓 𠬝 𠵅 𠷡 𠺕 𠹭 𠹤 𠽟 𡈁 𡉕 𡉻 𡉴 𡋤 𡋗 𡋽 𡌶 𡍄 𡏄 𡑭 𡗗 𦰩 𡙇 𡜆 𡝂 𡧃 𡱖 𡴭 𡵅 𡵸 𡵢 𡶡 𡶜 𡶒 𡶷 𡷠 𡸳 𡼞 𡽶 𡿺 𢅻 𢌞 𢎭 𢛳 𢡛 𢢫 𢦏 𢪸 𢭏 𢭐 𢭆 𢰝 𢮦 𢰤 𢷡 𣇃 𣇵 𣆶 𣍲 𣏓 𣏒 𣏐 𣏤 𣏕 𣏚 𣏟 𣑊 𣑑 𣑋 𣑥 𣓤 𣕚 𣖔 𣘹 𣙇 𣘸 𣘺 𣜜 𣜌 𣝤 𣟿 𣟧 𣠤 𣠽 𣪘 𣱿 𣴀 𣵀 𣷺 𣷹 𣷓 𣽾 𤂖 𤄃 𤇆 𤇾 𤎼 𤘩 𤚥 𤢖 𤩍 𤭖 𤭯 𤰖 𤴔 𤸎 𤸷 𤹪 𤺋 𥁊 𥁕 𥄢 𥆩 𥇥 𥇍 𥈞 𥉌 𥐮 𥓙 𥖧 𥞩 𥞴 𥧔 𥫤 𥫣 𥫱 𥮲 𥱋 𥱤 𥸮 𥹖 𥹥 𥹢 𥻘 𥻂 𥻨 𥼣 𥽜 𥿠 𥿔 𦀌 𥿻 𦀗 𦁠 𦃭 𦉰 𦊆 𦍌 𣴎 𦐂 𦙾 𦚰 𦜝 𦣝 𦣪 𦥑 𦥯 𦧝 𦨞 𦩘 𦪌 𦪷 𦱳 𦳝 𦹥 𦾔 𦿸 𦿶 𦿷 𧄍 𧄹 𧏛 𧏚 𧏾 𧐐 𧑉 𧘕 𧘔 𧘱 𧚓 𧜎 𧜣 𧝒 𧦅 𧪄 𧮳 𧮾 𧯇 𧲸 𧶠 𧸐 𧾷 𨂊 𨂻 𨊂 𨋳 𨐌 𨑕 𨕫 𨗈 𨗉 𨛗 𨛺 𨥉 𨥆 𨥫 𨦇 𨦈 𨦺 𨦻 𨨞 𨨩 𨩱 𨩃 𨪙 𨫍 𨫤 𨫝 𨯁 𨯯 𨴐 𨵱 𨷻 𨸟 𨸶 𨺉 𨻫 𨼲 𨿸 𩊠 𩊱 𩒐 𩗏 𩙿 𩛰 𩜙 𩝐 𩣆 𩩲 𩷛 𩸽 𩸕 𩺊 𩹉 𩻄 𩻩 𩻛 𩿎 𪀯 𪀚 𪃹 𪂂 𢈘 𪎌 𪐷 𪗱 𪘂 𪘚 𪚲

 ということで,「私,𩸽の開きを焼いたのが大好きなのよ」なんちゅうこともブログにかけるわけだ。ハハ。おっと,書き忘れるところだった。もちろんだけど, SQL Server の utf8mb4 サポートは当然ながら,必須ダヨ。

カテゴリー
WordPress

覚え書-#23。

The same article in English

 いくつかのサーバソフトをアップデートした (OS は Win7 HP SP1 x86)。

  • MariaDB 10.0.16 —->> MariaDB 10.0.17 (Changelog)
  • PHP 5.6.7 —->> PHP 5.6.8 (Changelog)
    注) <php_root> 直下に lib というディレクトリが増えた。 bug #65406 の関連。
  • phpMyAdmin 4.3.10 —->> phpMyAdmin 4.4.3 (Changelog)
    注) config.sample.inc.php から下記の行が削除されていた。

    • * default display direction (horizontal|vertical|horizontalflipped)
      */
      //$cfg[‘DefaultDisplay’] = ‘vertical’;
      /**
  • ActivePerl 5.20.1.2000 —->> ActivePerl 5.20.2.2001
  • WordPress 4.1.1 —->> WordPress 4.1.2
    注) このアップデートは自動で行われた。
カテゴリー
WordPress

初めての VPS-#4 (CentOS7 上に WordPress のインストール)。

The same article in English

 さくらの VPS のお試し期間は, 12/2 までだったのだが,まだやりたいことを残しているので,続けて使っている。月払いで,しばらく続けてみるつもりである。

 今回は,「WordPress のインストール」について書く。試される場合は,当然ながら,前もって,初めての VPS #1初めての VPS #2初めての VPS #3 は完了していないといけないです。まずは Wheel Group User (うちの場合は centos )として―言い換えると root 権限のユーザということ―インストールする。

注)||SELinux と WordPress||httpd_selinux(8) 参照)

  1. ダッシュボードからプラグインをインストールしようとしたら,「FTP サーバー VPS_DomainName への接続に失敗しました」が出た。 Http デーモンがネットワークにアクセスできないせいらしい。解決策は, “httpd_can_network_connect –> on”。
    $ sudo setsebool -P httpd_can_network_connect on
  2. ダッシュボードからメディアファイルをアップロードしようとしたら,「ディレクトリ wp-content/uploads/year/date を作成できませんでした。この親ディレクトリのアクセス権はサーバーによる書き込みを許可していますか?」が出た。親ディレクトリのパーミッションは 707 だったんだけとさ。 Httpd デーモンが context のせいで,ディレクトリの読み書きができないらしい。 context を ‘httpd_user_content_t’ から ‘httpd_sys_rw_content_t’ に変えたら,できるようになった。しかし,別の問題が発生。 FTP クライアントから見えない。メディアファイルに関しても FTP クライアント経由でバックアップすることが多い私には,これは問題である。
     
    解決策を探してみた。
    context を ‘httpd_sys_rw_content_t’ ではなく, ‘public_content_rw_t’ にする。メディアをアップロードするためには, ‘httpd_anon_write –> on’ も必要だった。
    $ sudo setsebool -P httpd_anon_write on
    $ sudo semanage fcontext -a -t public_content_rw_t
    "/path/to/wp-content/uploads(/.*)?"

    $ sudo /sbin/restorecon -RF /path/to/wp-content/uploads
     
    参考 URL: 5.7.2. 永続的な変更: semanage fcontext
    上記には ‘restorecon -R’ で変更可能にと書いてあるのだが,なんでだか ‘restorecon -RF’ と F(force)を付けないとうまくいかなかった。

||Wheel Group User として WordPress をインストール||

  1. phpMyAdmin に root としてログイン。
  2. WordPress 用の database (wordpressdb とか) を照合順序 ‘utf8_general_ci’ で作成する。
  3. WordPress 用の user (wordpressuser とか) を localhost かつ passphrase ありで作成する。
    GRANT USAGE ON *.* TO wordpressuser@localhost IDENTIFIED BY PASSWORD ‘passphrase’;
     
    特権を編集する。データベース ‘wordpressdb’ について GRANT 以外のすべての特権を与える。グローバル特権は一切付与しないことに注意!!
    GRANT ALL PRIVILEGES ON wordpressdb.* TO wordpressuser@localhost;
  4. ログアウト

——————–

  1. VPS に SSH 経由で centos としてログオン。直後は, /home/centos にいるはず。
  2. $ mkdir tmp
    $ chmod 707 tmp

    tmp はダウンロードファイル用である。

  3. $ cd tmp
     
    ‘wget’ が入っていない場合は,下記でインストール。
    $ sudo yum install wget
     
    WordPress をダウンロードし,解凍後当該個所にコピーする。
    $ wget https://ja.wordpress.org/wordpress-4.0-ja.tar.gz
    $ tar xzvf wordpress-4.0-ja.tar.gz
    $ rsync -avP ~/tmp/wordpress/ ~/www/html/wp/
  4. uploads フォルダを作成。
    $ mkdir ~/www/html/wp/wp-content/uploads
    $ chmod 707 uploads
     
    context type を変更する。
    $ sudo semanage fcontext -a -t public_content_rw_t
    "/home/centos/www/html/wp/wp-content/uploads(/.*)?"

    $ sudo /sbin/restorecon -RF /home/centos/www/html/wp/wp-content/uploads

——————–

  1. ブラウザから, http://VPS_DomainName/wp/ にアクセスする。
  2. ブラウザからのインストール時, wp-config.php が自動生成されないので,表示される情報をもとに,テキストエディタで作成し, FTP クライアントでアップロードして,パーミッションを 404 にする。
    それ以外は,順当に進む。
     
    注)WordPress が FTP account 情報を自動取得できないようで,アップテートやプラグインインストール時に,一々入れてやらないといけないので, wp-config.php の /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ より前に下記の 3 行を追加した。
    参考 URL: WordPress Upgrade Constants
     
    define('FTP_USER', 'username');
    define('FTP_PASS', 'password');
    define('FTP_HOST', 'VPS_DomainName');

 
 この時点で, PHP は DSO (Apache 2.0 Handler) で動いている。で,上の手順後,大部分の WordPress のファイルのオーナー/グループは ‘centos:centos’ になっているが,ダッシュボードからアップロードしたメディアファイルだけは, ‘apache:apache’ である。このせいで, FTP クライアントから,メディアファイルの編集ができない。バックアップはできるんだが。まあ, ‘centos‘ としてなら, SSH 経由で ‘chown’ が使えるけどね。
 
 このことは,一般ユーザの場合に,より問題となると思う。続いて,一般ユーザとして,インストールする話を書く。
 
||一般ユーザとして WordPress をインストール||
 当然ながら,サーバサイドの作業は,一般ユーザではできない。 centos として行う。

    [サーバサイド]——

  1. centos として, SSH 経由で VPS にログインし,一般ユーザを作成。
    $ sudo adduser normuser1
    $ sudo passwd normuser1
    Changing password for user normuser1.
    New password:
    Retype new password:
    $ sudo chmod 701 /home/normuser1
  2. /etc/httpd/conf.d/userdir.conf を編集する。
    $ sudo vi /etc/httpd/conf.d/userdir.conf 参考 URL: UserDir ディレクティブ

    • UserDir disabled の次行に UserDir enabled normuser1 を追加。
    • #UserDir public_html の次行に UserDir www/html を追加。
    • <Directory "/home/*/public_html">
      —>> <Directory "/home/*/www/html">
    • Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
      —>> Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
  3. $ su - normuser1
    $ mkdir www
    $ cd www
    $ mkdir html
     
    normuser1 id の属性をチェック。
    $ id -a normuser1
    uid=1001(normuser1) gid=1001(normuser1) groups=1001(normuser1)
    $ exit
    $ sudo systemctl restart httpd.service
  4. $ sudo gpasswd -a sennari apache
    normuser1 id の属性をチェック。
    $ id -a normuser1
    uid=1001(normuser1) gid=1001(normuser1) groups=1001(normuser1),48(apache)
  5. ブラウザから root として phpMyAdmin にログイン。
     
    WordPress 用の database (normuser1db とか) を照合順序 ‘utf8_general_ci’ で作成する。
    WordPress 用の user (normuser1wp とか) を localhost かつ passphrase ありで作成する。
    GRANT USAGE ON *.* TO normuser1wp@localhost IDENTIFIED BY PASSWORD ‘passphrase’;
     
    特権を編集する。データベース ‘normuser1db’ について GRANT 以外のすべての特権を与える。グローバル特権は一切付与しないことに注意!!
    GRANT ALL PRIVILEGES ON normuser1db.* TO normuser1wp@localhost;
     
    ログアウト。
    [クライアントサイド]——

  1. FTP クライアントで, normuser1 の DocumentRoot にアクセスする。
    テストとして, index.html をアップロードしてみる。ブラウザから http://VPS_DomainName/~normuser1/ にアクセスして確認。
     
    余談だが,この index.html に base64 encoded in-line image scheme を使ってみた (^^)。
  2. FTP クライアントで, DocumentRoot に wp フォルダを作成。
    解凍した WordPress のファイルを wp に FTP 経由でアップロード。
  3. ブラウザで, http://VPS_DomainName/~normuser1/wp/ にアクセスし, WordPress のインストールを続ける。
     
    ブラウザからのインストール時, wp-config.php が自動生成されないので,表示される情報をもとに,テキストエディタで作成し, FTP クライアントでアップロードして,パーミッションを 404 にする。それ以外は,順当に進んだ。
     
    注)WordPress が FTP account 情報を自動取得できないようで,アップデートやプラグインインストール時に,一々入れてやらないといけないので, wp-config.php の /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ より前に下記の 3 行を追加した。
    参考 URL: WordPress Upgrade Constants
     
    define('FTP_USER', 'username');
    define('FTP_PASS', 'password');
    define('FTP_HOST', 'VPS_DomainName');

 上記終了後, WordPress 4.0 を 4.1 にアップグレードした。問題なし。ところが, uploads フォルダは作成済みでパーミッションを 707 にしてあったにも関わらず,メディアのアップロードができなかった。そんなわけで,下記のような手直しをした。

  1. FTP クライアントで, uploads フォルダのパーミッションを 775 に変更。どうやら, Http デーモンがここにフルアクセスできないといけないようなので。
  2. 以下の 3 つは centos として SSH 経由でやった。これらは,一般ユーザの権限ではやれない。そんなわけで,複数ユーザのサイトを運営する場合,この件はとても不便ではないかと思った。何しろ, ‘fcontext -a -t’ 以外は uploads フォルダ作成後でないとできなかったから。
    • $ sudo chown -R normuser1:apache
      /home/normuser1/www/html/wp/wp-content/uploads
    • $ sudo semanage fcontext -a -t public_content_rw_t
      "/home/normuser1/www/html/wp/wp-content/uploads(/.*)?"
    • $ sudo restorecon -RF /home/sennari/www/html/wp/wp-content/uploads

 さて,いまひとつの疑問がある。どうして WordPress は upgrades と メディアアップロードで違う方法をとっているのだろうか。メディアについても upgrades と同じ方法でやってくれれば,こんなことは起こらないと思うのに。 PHP に詳しくないのでよくわからないが,おんなじ方法を使うとなんかまずいことがあるんかいな?
 
 そんなこんなで, suEXEC サポートに取り組んでみようかという気になっている。

カテゴリー
everyday life WordPress

覚え書-#21。

The same article in English
ROLIS 降下中の画像
ROLIS 降下中の画像
 みなさん,もう聞きましたか?
 
 12 日 15:35 UTC (つまり 13 日 00:35 JST) に,フィラエが,彗星に着いたってさ。すごいよなぁ。
 
 チュリュモフ・ゲラシメンコ彗星だよ。ワォ!!
 
 ところで,我がハヤブサ 2 も 11/30 打ち上げ予定だよねー。待ち遠しいな,天気がいいといいなぁ。
    メモ 1

  • 見出しNotes の見出しに Kranky を使うために,メインサイトの style.css を変更した。頭に “+” がある行を追加した。
    @import url("../sugar-and-spice/style.css");
    +@import url(https://fonts.googleapis.com/css?family=Kranky);
     
    /* Typography */
    h1, h2, h3, h4, h5, h6 {
    color: #000;
    }
    +h2 {
    + font-family: 'Kranky', cursive, Arial, sans-serif;
    + font-size: 2em;
    + margin: 0 0;
    +}
     
    変更前の CSS はこれ
     
    注)<h2> タグの関係をいじったが,うちの場合,このタグはメインサイトのほかの部分では使っていない。で,他に影響はないのだ。
  • メモ 2

  • Google Analytics by Yoast の使用をやめた。 Google アナリティクス‎ は使っているので, ID を手動で設定しなおした。
    1. ‘analyticstracking.php’ を Google アナリティクス‎のトラッキング ID ページの指示通りに作り, child theme のディレクトリにコピーする。
    2. サイトテーマの header.php を child theme のディレクトリにコピーする。
    3. 新しい headr.php を編集する。
      <body> タグの直下に, <? php include_once ("analyticstracking.php")?> を追加。
    4. 以上。
      注)データに変更が反映されるのには,しばらく時間がかかるようだ。
カテゴリー
WordPress

カールはプードル飼ってるのかな?

The same article in English
投稿アップデート情報  追記(10/26)

 前記事で, “POODLE” の件を書いた。その後, SSLv3 fallback attack POODLE というのを読んで, WordPress 上の cURL のことが気になりだした。

 curl_setopt( $handle, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); というオプションを curl_setopt で見つけたが, WordPress Core Scripts のどこに入れるのが一番いいのかがわからない。で, WordPress Forums に topic を建ててきた。現在,回答待ちです。

追記(10/26):
 cURL が確かに TLSv1.2 を使っていることを確認できたので,さっき, topic を [resolved] にしてきた。 Apache の SSL のログに %{SSL_PROTOCOL} を入れて調べた。 class-http.php に CURL_SSLVERSION_TLSv1 on the file を入れる必要はないようだ。サーバのコンフィグがちゃんと出来てれば,クライアントは安全にアクセスできるんだね。もちろん,クライアントのソフトが TLS に対応してないとかじゃ話にならんけど。

 何はともあれ,(*´▽`*)。

カテゴリー
WordPress

ただいま日本語版待ち,WordPress 4.0。

The same article in English
投稿アップデート情報  追記 追記2(9/6)

 WordPress 4.0 が出た。ただし,我が家は,日本語版待ち。皆さんはいかがですか。

 昨夜, WP Multibyte Patch のアップデートも来ていたので,グローバル版 4.0 を入れるならこちらも忘れずにやっておいたほうがいいのかもしれない。この間のためしもあるし。

追記:
 くりくりさんから,「インストール時に言語選択ができるようになった」の書き込みをいただいた。これ,インストール時だけかな。 @pages ではアップグレードしてみたのだが,なにも出なかった。本家は,マルチなので,アップグレードが不安で,待っている。日本語版はどうなるんだろう。 @pages の language フォルダを見ると,一応,新しい ja.mo が上書きされてはいる。

 しかし,本家の親言語は,英語だからなあ。どうなるんだろ。グローバル版,いれてみようか,どうしよう。

追記2(9/6):

 2 時 57 分に, WordPress 4.0 日本語版にアップデートした。WordPress 4.0 における言語関連実装の変更とその注意点を読んでみると,次回からは,日本語版を待つ必要はないかなと思う。古い wp-config.php から define('WPLANG', 'ja'); を削除し,プラグイン WP Multibyte Patch については,「ネットワークで有効化」をやめて,日本語のこのブログと netradi に対してのみの有効に変更した。

 それと,次回も忘れないように,自分に強ーく言い聞かしておこう。

  1. class-http.php に 2 行追加。
  2. ca-bundle.crt に 自前の CA のデータを追加。