【100G近く】dbcache.logがクッソでかくてコレ消していいのか調査した【容量パンッパン】

サーバーの容量を見てたらすんごく圧迫してるファイルを発見
/var/www/vhosts/domain_name/httpdocs/wp-content/cache/log/000000/dbcache.log

容量100G近くあってもうコレはいかんと。

SSHで繋いで該当ログファイルをtailしてみるとsqlとのやり取りがロギングされており
消しても良さそうだけどほんとに消していいのかヒヤヒヤ。

ググってもマルウェア云々とか出てきてもう顔面真っ青なわけですよ。

https://wordpress.org/support/topic/does-the-dbcache-log-file-can-be-infected-by-malware/

目を皿にしてW3 Total Cacheの設定項目を舐め回すこと3周

見つけました。

Performance → General Setting → Debug mode

コレのDatabase Cacheの欄のチェックを外して
ファイルを削除で解決っ!

ワードプレスの記事やコメントを一つ一つ消していくiMacros

ワードプレスから大量の記事やコメントを消すときの
一番手っ取り早い方法はSQLをいじる方法ですが、
諸事情でリスキーな案件だとそれは出来ない

かといって数百件表示しての一括削除だとタイムアウトしてしまう
そんな時のiMacros。

しかし最近有料化&無料プランは縛りが色々
(50行制限やファイルとして保存できず、current.iimしか使えない)
ときたのでここにメモ。
これをループで回していけばおk

VERSION BUILD=1001 RECORDER=CR
URL GOTO=【消したいURL】
TAG POS=3 TYPE=A ATTR=TXT:完全に削除
TAG POS=4 TYPE=A ATTR=TXT:完全に削除
TAG POS=5 TYPE=A ATTR=TXT:完全に削除
TAG POS=6 TYPE=A ATTR=TXT:完全に削除
TAG POS=7 TYPE=A ATTR=TXT:完全に削除
TAG POS=8 TYPE=A ATTR=TXT:完全に削除
TAG POS=9 TYPE=A ATTR=TXT:完全に削除
TAG POS=10 TYPE=A ATTR=TXT:完全に削除
TAG POS=11 TYPE=A ATTR=TXT:完全に削除
TAG POS=12 TYPE=A ATTR=TXT:完全に削除
TAG POS=13 TYPE=A ATTR=TXT:完全に削除
TAG POS=14 TYPE=A ATTR=TXT:完全に削除
TAG POS=15 TYPE=A ATTR=TXT:完全に削除
TAG POS=16 TYPE=A ATTR=TXT:完全に削除
TAG POS=17 TYPE=A ATTR=TXT:完全に削除
TAG POS=18 TYPE=A ATTR=TXT:完全に削除
TAG POS=19 TYPE=A ATTR=TXT:完全に削除
TAG POS=20 TYPE=A ATTR=TXT:完全に削除
TAG POS=21 TYPE=A ATTR=TXT:完全に削除
TAG POS=22 TYPE=A ATTR=TXT:完全に削除
TAG POS=23 TYPE=A ATTR=TXT:完全に削除
TAG POS=24 TYPE=A ATTR=TXT:完全に削除
TAG POS=25 TYPE=A ATTR=TXT:完全に削除
TAG POS=26 TYPE=A ATTR=TXT:完全に削除
TAG POS=27 TYPE=A ATTR=TXT:完全に削除
TAG POS=28 TYPE=A ATTR=TXT:完全に削除
TAG POS=29 TYPE=A ATTR=TXT:完全に削除
TAG POS=30 TYPE=A ATTR=TXT:完全に削除
TAG POS=31 TYPE=A ATTR=TXT:完全に削除
TAG POS=32 TYPE=A ATTR=TXT:完全に削除
TAG POS=33 TYPE=A ATTR=TXT:完全に削除
TAG POS=34 TYPE=A ATTR=TXT:完全に削除
TAG POS=35 TYPE=A ATTR=TXT:完全に削除
TAG POS=36 TYPE=A ATTR=TXT:完全に削除
TAG POS=37 TYPE=A ATTR=TXT:完全に削除
TAG POS=38 TYPE=A ATTR=TXT:完全に削除
TAG POS=39 TYPE=A ATTR=TXT:完全に削除
TAG POS=40 TYPE=A ATTR=TXT:完全に削除
TAG POS=41 TYPE=A ATTR=TXT:完全に削除
TAG POS=42 TYPE=A ATTR=TXT:完全に削除
TAG POS=43 TYPE=A ATTR=TXT:完全に削除
TAG POS=44 TYPE=A ATTR=TXT:完全に削除
TAG POS=45 TYPE=A ATTR=TXT:完全に削除
TAG POS=46 TYPE=A ATTR=TXT:完全に削除
TAG POS=47 TYPE=A ATTR=TXT:完全に削除

W3 Total Cacheの設定項目を一つ一つ理解する【執筆途中】

間違ってる点があればご指摘下さい(._.)

キャッシュプラグインを入れたはよいものの、急な問題はつきもの。
新しいキャッシュプラグインを触り出してすぐなんかは、
ローカルキャッシュなのか、サーバーサイドなのかどこにキャッシュが
すぐには分からず問題解決まで時間がかかったり、、、。

ということでスクリーンショット多めで、
google翻訳に頼りまくって
設定項目を一つ一つ理解していきたいと思います。

まずはGeneral Settingから

Enhanceは結構面白くて、htaccessの中にも変数が組み込まれて
かなり高速化してます。
htaccessの段階で振り分けちゃうんだから負荷もかなり軽減されます。

Opcode Cacheに興味津津。
php自体を高速化する仕組みらしくモジュールがあるかの確認→
php再起動が必要とのこと

phpの実行結果をキャッシュできるらしい。
かなり高速化できそうだけど、メモリバカ食いしないか心配。
ワードプレス管理画面からphpを高速化するってのもちょっと怖いし
とりあえず要検証といったところでお次へ。

 

DatabaseキャッシュとObjectキャッシュについて
オブジェクトキャッシュの方がWP独自の機能でDatabaseキャッシュの方は
このプラグインの提供する機能かな。

地味に大事なのが両方有効化すると後々問題の切り分けがしずらく、
どちらか一つの方がいいです。
どっちが良いのかというのは要検証ですな。

https://wpdocs.osdn.jp/%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Object_Cache

リバースプロキシマジかっ!ってなりましたが
ワニス(バニス?)というソフトをyumなりapt-getなりでインストール
する必要があるらしくハードルが高いので不要かな。

フラグメントについても直感的に理解できるので割愛。

その下の下記項目は省略
Monitoring →APIキーでRelicと連携して外部から連携
Licensing    →w3 total cache の有料アカウントのこと?

ここでは一番下のソースコードにコメント追記するモードが便利ですね。
訂正:一番下の和訳と↑このコメントは間違ってます。
デバッグの設定項目はこの下(スクショ範囲外)にあります。

General Setting ここまで
一旦休憩

 

 

ライブドアからワードプレスにインポートする手順

これまた自分用メモですが
設定の意図やおまかんな内容が多々含まれるので
検索から来た方は参考にしないでくださいw
作業は自己責任で。

【素材の準備】
ライブドアの管理画面からエクスポート
画像のURLリストを作成(リンク

【WPの準備】
ワードプレスを普通に構築
Movable Type のインポートを実行(サーバーが重いと中断する

中断がいやな場合はMAMPに構築して流し
wp_postsとwp_term_relationshipsをエクスポートして
インポート(しかしココもサーバーが重いと中断してしまうので工夫が必要

なお、文字コードのエラーが出た場合はutf8mb4」から「utf8」に変更する


※この辺はxmlrpc経由で1件1件投げるスクリプト
組んでも良いかもしれんけど、、、

そのあとプラグインのSearch Regexなどで微調整

【WPの各種設定】
i) パーマリンクを揃える
カスタム構造を/archives/%postname%.htmlに変更

functions.phpに下記内容を追記
記事投稿時にパーマリンクにランダム10桁の数字が付与されます

//パーマリンクをライブドア風に
function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
    if ( preg_match( '/(%[0-9a-f]{2})+/', $slug ) ) {
    $slug = substr(str_shuffle('1234567890'), 0, 8);
  }
  return $slug;
}
add_filter( 'wp_unique_post_slug', 'auto_post_slug', 10, 4 );
//パーマリンクをライブドア風にここまで

ii)素材の配置とサムネイルの生成
wp-content/uploads/配下にディレクトリを作って設置
(このディレクトリ以外にしちゃうと後々再度引っ越しなったときに大変になる
どうしても無理な場合はメモったりちゃんと引き継いだりする!

そしてプラグインのAuto Post Thumbnail等でアイキャッチをあてがう
ただ、jpgをうまく取り込めないバグがあるので注意_2018/04/17時点
下記内容をfunctions.phpに追記

function split_combined_mimes_for_apt( $mime_types ) {
  foreach ( $mime_types as $regex => $mime_type ) {
    if ( false !== strpos( $regex, '|' ) ) {
      $keys = explode( '|', $regex );
      foreach ( $keys as $key ) {
        $mime_types[ $key ] = $mime_type;
      }
    }
  }
  return $mime_types;
}
add_filter( 'mime_types', 'split_combined_mimes_for_apt' );

iii)categoryは対応がとれず、.htaccessでも上手くいかないでheader.phpに
スクリプトを書いていく

//リクエストを取得
$url = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
$host= 'http://example.example/cat/';
//飛ばしたい先に振り分ける
if (preg_match('/cat_/', $url)) {
header( "HTTP/1.1 301 Moved Permanently" ); 
if (preg_match('/cat_num4999/', $url)) {
header( "Location: $host飛ばしたい先のエンコードURL" ); 
 exit;}

 

 

Centos7+PleskOnyxを色々いじってみた(多分一段落)_自分用メモ

チューニング初心者の僕にはかなり勉強になりました。
(間違ってたらご指摘お願いします。)

‪CentOS Linux 7.4.1708 (Core)
Plesk Onyx v17.5.3
CPU 16core
メモリ32G
最終的にphp-fpm+nginxで動かしてます。

nginx version: nginx/1.11.10

Server version: Apache/2.4.6 (CentOS)
Apache2.4は初めて触りました。

これに50ドメイン近く突っ込みまして
一時期ロードアベレージは50近くw

Apacheの設定ファイルはNginxに移ったので殆ど触ってない

続きは疲れたので後日_2018-04-08

続き
Nginxの設定ファイル(共通項目
/etc/nginx/nginx.conf

diff nginx.conf.dateori nginx.conf

<     worker_connections  1024;
---
>     worker_connections  8192;
19a20,27
>     proxy_cache_path /var/cache/nginx keys_zone=zone1:1m max_size=1g inactive=4h; 
>     proxy_temp_path  /var/cache/nginx_tmp;
> 
> # add 2018 0421 has too long header_fix
> proxy_buffer_size     8k;
> proxy_buffers     100 8k;
> #/add 2018 0421
> 

ドメインごとの設定ファイル(アクセスログを止めたり、エラーログのレベルを設定したるするため
/var/www/vhosts/system/domain_name/conf/

しかし設定ファイルをよく読まないといけません。冒頭に

#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,(以下略

#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
#IF YOU REQUIRE TO APPLY CUSTOM MODIFICATIONS, PERFORM THEM IN THE FOLLOWING FILES:
#/var/www/vhosts/system/domain_name/conf/vhost.conf
#/var/www/vhosts/system/domain_name/conf/vhost_ssl.conf

こういう記述があって、
要はこのファイルを編集しても自動生成の際に上書きされてLOSTしますよ〜と言われます。

/var/www/vhosts/system/domain_name/conf/vhost.conf

ではどうすれば良いのかというと。。。
まずは
$ cat nginx.conf | grep include
してみる

include /etc/nginx/fastcgi.conf;
include /etc/nginx/fastcgi.conf;
include "/var/www/vhosts/system/domain_name/conf/vhost_nginx.conf";

とのこと。
これの一番下がpleskGUIからの設定値になります。
なのでそちらを編集しませう。