2016年6月3日金曜日

複数サイトのメンテナンスを WP-CLI でやろう!(サーバー管理者編)

いままで、WordPressをコマンドラインでメンテしようという情報をブログでいくつか書いてきました(関連情報参照)。ここで纏めということで、サーバー管理者向けに、

  • バックアップ > プラグイン更新 > WordPress 本体更新 > プラグイン更新
WP-CLI(コマンドラインツール)を使って、Linux cronに組み込んで WordPressのメンテナンスを自動化しようっていうのを紹介してみます。本体更新の後に再度プラグイン更新をしているのは、WordPressの新しいバージョンのみ対応のプラグインの場合、本体更新後しかアップデートが出てこないため、念押しでやっています。

この方法を使うためには
  • サーバーにログインできること
  • WP-CLIがインストールでき、動作すること
  • サーバーで cronが利用できること
が必要です。


関連情報



個別説明


1. バックアップ


2016年5月31日火曜日

【備忘録】複数サイトのプラグインバージョン調べ - WP-CLI編 -

JetPackに脆弱性が見つかったみたいですね。
更新をって簡単にいいますが、バックアップ > 更新 > 検証 という手順が必要で多数のサイトを管理している場合、全部マニュアルでやっていられません。特に現状のバージョンチェックのためだけにわざわざ WordPressにログインなどナンセンス!

WP-CLIを使う


1つや2つのサイトなら

cd WordPressインストールフォルダ
wp  plugin  list | grep jetpack 


cd WordPressインストールフォルダ
wp  plugin  get  jetpack  | grep version

とかで手動チェックできるでしょう。でも多数あったらそれも大変です。

一括バージョンチェックできる CSH スクリプトを作ってみる


こういう時、サーバー管理者ならちょちょいと一括チェックツールを作っちゃうでしょう。ここでは簡易のツールについて紹介しておきます。

2016年5月20日金曜日

【備忘録】nginx における WordPressのJetpackにより WordPress.com 対策

以前、Apacheのケースについては
で説明していました。
nginx についても説明しているところはありますが、まだApacheほど数も多くなく、後から探すのが面倒なので書き出しておきます。

一般的な設定(パスワード保護された WordPressも対応)


location ~* /xmlrpc\.php$ {
  access_log off; log_not_found off;
  satisfy any;
  allow 192.0.64.0/18;
  allow 使用中の端末IPアドレス;
  deny all;

  location ~ \.php$ {
     include /etc/nginx/php-fpm;
  }
}

サイトの構築によっては変わるので、一般的な設定の例示とします。

allow 使用中の端末IPアドレス;


まず最初に、自分の端末のIPアドレスを入れてください。
これは本当に xmlrpc.php へのアクセスをしていて、それがブロックされるかのチェックのためです。自分の今使っている(プロバイダの場合には動的なので変化します)IPアドレスを、「IPアドレスチェック」 とかで検索して調べてみてください。

nginx を reload して xmlrpc.php にアクセスしてみる


サイトURL/xmlrpc.php にアクセスして、
  • XML-RPC server accepts POST requests only.
と出ればアクセスOKです。
そして
# allow 使用中の端末IPアドレス;
として無効化して、nginx を reloadします。

サイトURL/xmlrpc.php にアクセスして、403 Forbidden とアクセス拒否されればOKです。

設定の個別説明


さてその他の設定について説明しておきます。

2016年5月4日水曜日

【お知らせ】自前 WordPress 公式プラグイン「WP DS FAQ PLUS」が動作しなくなっていた・・

いつのまにやら動作しなくなっていたようでした。
具体的には Ajax エラーで追加や変更ができず、項目の展開などもできなくなっていました。普段は項目は展開済みだったので気付かず...
に WordPress.org に投稿があって気づきました。
まぁあの頃は、新サーバーの調整に没頭していたので全然他の作業を追えてなかったってこともあるんですけどね。

でなにをしても Ajax エラーになっていたのですがなんとか修正して 1.2.7をアップデートしたのでした。

原因:PHP7上で「mysql_real_escape_string」が動かない


もうご承知のようにその関数が PHP7 から廃止されたからですね。
それ以外はエラーが出ていなかったので、おそらくはPHP7環境で動作させたのだろうなぁと思います。のでエラー吐いて動かなかったと...今回は esc_sql 関数へ置き換えました。


ボツボツと WordPress を PHP7 を使う環境が増えてきたってことなんでしょうねぇ。

ふ〜休みだからガッツリとチェックできました...

2016年5月4日 @kimipooh

【お知らせ】自前公式 WordPress プラグイン「WP ADD MIME TYPES」をマルチサイト対応に!#plugins

結構いろいろハマったところもあったけど、なんとか対応!


マルチサイト対応!


何故マルチサイト対応にしたかというと、


という質問を頂いたから。
それからずいぶんたってしまったけれど、ようやく対応できました。

マルチサイト対応って?


2016年4月28日木曜日

未承認を含む GlotPress での翻訳データを POファイルとしてダウンロードする方法

WordSlask でのやり取りで分かりました。

1. Filter で「 Current/waiting/fuzzy + untranslated (All)」


デフォルトでチェックされているはずですが、念のため確認。




2.  only matching the filter を選択し Export




これでダウンロードした POファイルを Poeditで開くと、未承認のものも反映されています。これでチェックしながら翻訳すると捗ること間違いなしですよ!

2016年4月28日 @kimipooh

2016年4月27日水曜日

【備忘録】nginx + fastcgi のアップロード容量サイズと WordPress Download Monitor の rewrite 設定について

2点結構悩んだので纏めておきます。

nginx + fastcgi のアップロード容量サイズ


デフォルトは 4MBになっています。
これを32MBに拡張しようとすると、

nginx.conf(nginx 設定)

 client_max_body_size 32M;

php.ini(PHP設定)
  post_max_size = 32M
  upload_max_filesize = 32M

php-fpm (FastCGI設定)
  php_admin_value[upload_max_filesize] = 32M
  php_admin_value[post_max_size] = 32M

の3つをチェックしてみてください。特にphp-fpm は忘れていたので盲点でした。