codes / cipher https://yukari-n.info 解読せよ Wed, 18 Jul 2018 12:01:40 +0000 ja hourly 1 https://wordpress.org/?v=4.9.7 https://yukari-n.info/wp-content/uploads/cropped-bg-2-32x32.jpg codes / cipher https://yukari-n.info 32 32 148317907 UpdraftPlusを手動で動かす方法まとめ https://yukari-n.info/posts/do-updraftplus-manually/ https://yukari-n.info/posts/do-updraftplus-manually/#respond Sun, 15 Jul 2018 15:26:19 +0000 https://yukari-n.info/?p=90 "UpdraftPlusを手動で動かす方法まとめ" の続きを読む

]]>
私のサイトもWPによるcron実行は停止しています。
これまでGoogle App Scriptでwp-cron.phpを定期的に叩いていたのですが、この方法ではUpdraftPlusでのバックアップがうまく取れない事があったため、良い方法が無いか調べました。

1. cronでwp-cron.phpを叩く

レンタルサーバーでも管理画面から設定できることがあります。

sudo vi /etc/crontab
*/10 * * * * www-data /usr/local/php7/bin/php -q /var/www/html/wp-cron.php >/dev/null 2>&1

で10分毎に叩けます。
現在の状況を調べるには sudo /etc/init.d/cron status
設定をリロードするには sudo /etc/init.d/cron reload

この方法は結局定期的にwp-cronを動かす為、そもそもwp-cronを動かしたくない場合には向きません。

2. 定期実行用のファイルを作る

下記ページを参考に、データベースのみ/ファイルのみ/両方のバックアップを行うファイルを作り、それをcronやApp Scriptに登録して定期実行します。

とりあえず全部バックアップしたいならこんな感じ。

<?php
define('UPDRAFTPLUS_CONSOLELOG', true);
define('DOING_CRON', true);
require_once('wp-load.php');
do_action('updraft_backup_all');

ファイルの場所はどこでも良いですが、テンプレートなどのアップデートの影響を受けない様な場所に置くのが良いでしょう。

この方法であればwp-cronを動かすことなくバックアップできます。
また、有料版でしか出来ない「好きな時間にバックアップを行う」という事が出来てしまったりします。個人的には此方の方法がおすすめ。

]]>
https://yukari-n.info/posts/do-updraftplus-manually/feed/ 0 90
作ったもの https://yukari-n.info/posts/works/ Thu, 12 Jul 2018 12:16:33 +0000 https://yukari-n.info/?p=15
  • はさんでひっくりかえすやつ
  • 全部暗くするやつ
  • ]]>
    15
    ホテルヴィラフォンテーヌ東京神保町 https://yukari-n.info/hotels/hotel-villa-fontaine-tokyo-jinbocho/ Mon, 09 Oct 2017 01:00:00 +0000 https://yukari-n.info/?p=112 "ホテルヴィラフォンテーヌ東京神保町" の続きを読む

    ]]>
    泊まらせていただいたところ。

    宿泊日
    2017年9月下旬 平日1泊
    プラン
    シングル(3階)
    食事
    なし
    インターネット
    無線・有線LANあり

    通常のビジネス利用なら問題なし

    外装は古いですが中はとても綺麗なホテルでした。

    フロントが地下(?)でした。ちょっと構造が複雑なホテル。
    エレベーターはあるので荷物を持っていても大丈夫です。

    特にこれは! と思ったことはありませんが、入浴剤が置いてありました。
    あと部屋にはお茶の他にコーヒーも置いてありました。

    「神保町」駅から徒歩2分、「九段下」「水道橋」「御茶ノ水」駅からも徒歩圏内で、ビジネスにはもちろん、東京観光への拠点にも最適です。無料Wi-Fi完備で、ビュッフェ形式の朝食付きプラン、早割プラン、当日の休憩にデイユースプランなど室数限定で格安でご案内。...
    【公式・最安料金】ホテルヴィラフォンテーヌ東京神保町|神保町駅徒歩2分 - www.hvf.jp
    ]]>
    112
    Google Compute Engineが滅茶苦茶重かった件 https://yukari-n.info/posts/gce-slow/ https://yukari-n.info/posts/gce-slow/#respond Thu, 14 Sep 2017 00:00:26 +0000 https://yukari-n.info/?p=61 "Google Compute Engineが滅茶苦茶重かった件" の続きを読む

    ]]>
    8月のまとめ記事にも書いたのですが、結局原因が何だったのか不明です。
    以下の問題を解決したら同時に解決したような感じになったので、やっぱりデータベースがどこか破損していたんでしょうか…。

    WordPressでソフト404が出た

    以下、とりあえず記録。

    何が起こっていたか

    Google Compute Engine上のWordPressが超重い。

    死ぬほど重いっていうかサイトは死んでた。

    サイトにアクセスすると、妙にCPUやメモリを食ってしまうことが8月7日から頻発していました。
    あまりにも重く、一番ひどい日はまともに動いている時間の方が少ないくらいでした。最終的にGoogleにサーバーもっと良いやつ使ってよと言われる始末。

    最終的に大掛かりなメンテナンスをすることで解消。以下は、全てではないですがある限りかき集めたログなど。

    原因究明

    結果だけ書くと、

    • 記事投稿・更新
    • ソフト404を起こしていたページヘのアクセス

    がトリガーになっていたようですが、不正アクセスが原因だった可能性も否定はできません。

    • プラグインが原因じゃないっぽい(重くなった日にプラグインのアップデートをしていたものの、コードの差分を確認しても重くなるような要因は見つけられず)。
    • CPU使用量だけでなくディスクのバイトやネットワーク使用量が増えていた
      • (当該サイトの外部IP).bc.googleusercontent.comとインスタンスの間で連続して大量通信があるのが重さの直接的な原因だったみたいなんだけど、自分のIPだからこれをブロックするとサイトが表示されなくなる。
      • ちなみに大量通信がある間、外部との通信はしていない(もちろんアクセスがあればしているが、上記の謎通信がMB/sで通常のサイトへのアクセスはkB/sくらい)。
    • このエラーも出ていた。

    やったこと

    8月25日深夜

    PHP 7.1.8にアップデートしたものの、エラー変わらず。

    8月26日昼頃

    • mysqlの構文変更によるデータベースエラーを修正。アクセス時やや重い。
    • キャッシュなど戻してみる。
      エラーがうるさいので
      logcheckからの報告を見ると、なんだかとにかく色々な報告が出ている。Zarafa WebApp でログインした途端に以下のブロックメッセージが出る。Ju…
      『Ubuntu 12.04 色々なことが起きているので調べてみるメモ』 - ろっひー

      気づいたら、/var/log/messagesに以下のようなメッセージが頻発していた。(1分に1回) Sep 28 08:08:20 raspberrypi kernel: IN=eth0 OUT= MAC= S...
      Raspberry Piセットアップ日記(13)UFW BLOCKメッセージ - itmanlive.blogspot.jp

      をやってみた。が効果はなし。
    • hogehoge.members.linode.com(一部伏せほげほげ)からの不正ログインらしきアクセスがあったのでブロック。この後は重くなっていない。
    • 更にデータベースの掃除と修正。

    雑多なメモで申し訳ない。
    ただ友人に相談したらデータベースじゃないかと言われて、念の為徹底的にデータベースを綺麗にしたら直りました…同じ症状がある人は試してみてください。

    ちなみに、通信費のせいでGCPの請求がいつもの4倍になりましたとさ。いつもほぼタダなので別に痛くはないですけど。

    ]]>
    https://yukari-n.info/posts/gce-slow/feed/ 0 61
    WordPressでソフト404が出た https://yukari-n.info/posts/wordpress-soft-404/ https://yukari-n.info/posts/wordpress-soft-404/#respond Sun, 27 Aug 2017 00:00:33 +0000 https://yukari-n.info/?p=33 "WordPressでソフト404が出た" の続きを読む

    ]]>
    Googleなどのウェブマスターツールに登録しておくと、サイトを監視していなくても各種クローラーが監視役をしてくれて便利です。ウェブマスターツールについては別記事を書きますので参考になれば。

    今回は、そのウェブマスターツールに「ソフト404」で怒られたので原因究明と対処をしました。

    ソフト404とは

    Googleの定義によると、ページが存在しない(本来ステータスコード404を返すべきな)のに200OKなどが返ってきてしまうことを言うそうです。

    200が返ってきているので、通常のインデックス処理などを行ってしまうbotなどもあります。
    一方で閲覧者には白紙ページとなっているため、SEOにもユーザーにも良くない状況です。

    私のサイトの症状

    WordPressで運営している趣味サイトの方で、2ページほどエラーが出ていました。
    実は、これ以外にもサイトが妙に重くなる症状を併発していたため、原因究明と対応に時間がかかってしまいました。重くなる方はどうも別の問題のようで、原因がはっきりしたらまた別記事を書きます。

    結果的にソフト404問題だった部分だけを書き出すと、

    • 当該ページにアクセスするとステータスコード200または500が返る
    • Apacheのアクセスログに残らない場合もある(これはサイトがめちゃくちゃ重かったせいかも)
    • ページの読み込みがめちゃくちゃ遅い(結果的に白紙が返る)
    • 当該記事の内容は無事。管理画面やAMPページでは問題なく見れる(これが混乱の元)

    という症状でした。

    原因究明

    疑った順番に書きます。結論だけ知りたい方は次節へ。

    1. サイトが重いからじゃない?

    別問題の一部だと思っていた頃です。
    でも、サイトも24時間ずっと重いわけじゃないので、スイスイ動いている時は別ページは普通に見れる。むしろソフト404が出ているページにアクセスすると重くなるような…。

    2. MySQLの不具合

    素直に考えれば、当該記事のみ本文などが破損していると考えられます。
    そこで管理画面からチェック。…普通に見れるし何なら記事の更新作業もできる…。

    AMPプラグインによるAMPページも閲覧可能。
    念の為データベースも見てみましたが、特に破損は見当たらず。

    3. ApacheやPHPの不具合

    実は、サイトが重くなったりソフト404が出る前に、色々やっていたのでした。

    • Yandexへの登録(クローラーが頻繁に来るようになった)
    • システム全体のアップデート&高速化(Apacheのチューニングを含む)
    • WordPressのプラグインアップデート

    しかし、上2つは症状が出た時期と1週間以上ずれています。エラーは1日に何度も起こっているので、1週間以上一度もエラー無しで運用出来た後に、突然重くなったりエラーが出たりというのは、これらが原因とは考えにくいです。

    プラグインアップデートのみ、サイトが重くなった日と同日でしたが、こちらはプラグインを停止しても重いまま…これも原因ではないようです。いずれにせよ、一部の記事にのみ影響を及ぼしそうなプラグインではなかったため、除外。

    残るはURL構造や純粋なPHPの構文エラーが考えられます。特に、たまたまURLの似ている記事だったので、かなり疑いました。
    ところが、よく考えたら他にも同じような、はっきり言って今回見れなくなったページよりももっと似ているURLの記事もあります。リダイレクトなども設定しておらず、実際されている様子もない。
    試しにスラッグ変更などもやってみましたが、駄目だったのでこれではない。

    PHP構文に至っては、このところテンプレートなどを弄っていなかったのでエラーが起こる要素が見当たらない…。
    そもそも、最初のPHP処理が行われる前に表示されるべきHTML部分も表示されないため、何かもっと別の問題な気がしました。
    ちなみに、デバッグモードは使えませんでした。そもそも重くて読み込めない。

    最終的な原因

    改めてデータベースをよく見直していたところ、post_statusに見慣れない「inherit」という文字が入っていました。
    これはattachment、つまりメディアファイルの公開範囲を、紐付けられている投稿(親投稿)に合わせる、というものです。
    今回のソフト404の原因は、このinherit属性が通常の投稿に入っていたからでした。これをpublishedにし、ブラウザやサーバーのキャッシュを削除してアクセスし直すと無事表示されるようになりました。

    何故一部の記事にのみこの属性が入ってしまったのかはわかりません。
    当該記事はカスタム投稿タイプでしたが、記事に親子関係は付けていませんでした。

    管理画面からだと普通に「公開」状態に見えてしまうので、一部の記事のみソフト404になったり表示が重い、という方はデータベースの中身をチェックしてみてください。

    ]]>
    https://yukari-n.info/posts/wordpress-soft-404/feed/ 0 33
    WordPress AMPプラグインの修正 https://yukari-n.info/posts/wordpress-amp-plugin/ https://yukari-n.info/posts/wordpress-amp-plugin/#respond Sat, 17 Jun 2017 00:00:25 +0000 https://yukari-n.info/?p=16 "WordPress AMPプラグインの修正" の続きを読む

    ]]>
    WordPressをAMP対応させたい時はAMPプラグインが便利です。しかし、取り扱うコンテンツによってはエラーが多発するため、基本的にカスタマイズが必要です。
    (カスタマイズ無しで運用できるサイトであれば、サイト全体をAMP対応にしても良いと思います。)

    AMPプラグインのカスタマイズ

    GitHubに一通り書かれています。

    amp-wp - WordPress plugin for adding AMP support
    Automattic/amp-wp - GitHub

    以下のソースはfunction.phpに記述します。

    カスタム投稿タイプの追加

    例えば「blog」という投稿タイプも変換してほしい場合は以下のようにします。

    <?php
    function amp_add_custom_posts(){
        add_post_type_support('blog',AMP_QUERY_VAR);
    }
    add_action('amp_init','amp_add_custom_posts',99);
    

    使用不可タグの除去

    私の場合は、主に「使用不可タグ」のエラーが出ていました。
    <details><summary>だけだったので、許可タグを指定してstrip_tagsするより、str_replaceの方が実装が楽でした。

    pre_amp_render_postのアクションフックにWP標準のthe_contentフィルターフックを仕込むという2段階操作。

    <?php
    add_action('pre_amp_render_post','custom_amp_remove_tags');
    function custom_amp_remove_tags() {
        add_filter('the_content','custom_amp_remove_tags_filter');
    }
    function custom_amp_remove_tags_filter($content) {
        $content = str_replace(
            array('summary>','details>',),
            array('span>','div>'),
            $content
        );
        return $content;
    }
    

    ここではそれぞれ<span></div>に置きかえていますが、許可されているタグあるいはプラグインが自動で変換してくれるタグなら何でも良いです。
    削除できるのであればこの段階で削除しても良いです。

    また、アップデートの度にテンプレートを修正するのが面倒であれば、ここで$contentに広告やシェアボタンを付加しておくとめんどくさくないです。


    また、アイキャッチをWP標準のシステムではなく、自分でpostmetaにURLを指定してあれこれするスタイルなので、これでもまだ構造化マークアップの方のエラーが出ています。
    なんとかならないかとプラグインのソースコードを見ましたが、どうも直に編集しないといけなさそうなのでこちらは保留。(外部フックでできなくもなさそうだけどそこまでして今頑張る必要性をAMPには感じない。)

    ]]>
    https://yukari-n.info/posts/wordpress-amp-plugin/feed/ 0 16
    LinuxでMarkdownエディタ選びに苦労した https://yukari-n.info/posts/xubuntu-dark-theme/ https://yukari-n.info/posts/xubuntu-dark-theme/#respond Mon, 12 Jun 2017 00:00:47 +0000 https://yukari-n.info/?p=55 "LinuxでMarkdownエディタ選びに苦労した" の続きを読む

    ]]>
    32bitなのが悪いのかしらんけど色々大変でした。
    結論から言うとダークテーマ選びに帰結した。

    エディタの変遷とその理由

    Atom

    WindowsやMacでも使っているので当然メインユースはこれなんですが、markdown関連のパッケージを追加したら、プレビュー画面が何をしても開かなくなってしまいました。

    プレビューが無いのは流石に辛いし、できればオンラインエディタは避けたいので、Linux用のエディタを探す旅へ。

    Haroopad

    評判が良かったのでとりあえず入れてみた。

    カスタマイズも細かくできて良いな、と思ったのもつかの間、表のプレビューができない。ちょっとこれは…。

    Remarkable

    最終的にこれに決めた。あまりたくさん弄れないけど、必要な機能は揃っている。

    ナイトモードが効かない人は、FAQを見よう。
    黒背景じゃないと編集できない人なので今度はテーマ探しの旅へ(Xubuntuの標準テーマだとできなかった)。Numixだといい感じだけど、なんとなくハイライト色が好きじゃない…。

    個人的に(Atomもそうですが)丸い青っぽいアイコンはPale Moonと区別がつかなくて好きじゃないんですが、やむなし。

    入れてみたテーマ類

    Arc

    テーマとしては最高。だけどエディタ画面の[]内の文字がかなり読みにくい。

    インストールはこちらを参考に、

    sudo add-apt-repository ppa:noobslab/themes
    sudo apt-get update
    sudo apt-get install arc-theme
    

    Numix-Holo

    Numixの派生で、ハイライトが青い。

    相変わらずダーク系テーマは[]内が読みにくいけど、Arcの明るいグレー背景よりはマシかなあ…。とりあえずしばらくこれでがんばります。

    ]]>
    https://yukari-n.info/posts/xubuntu-dark-theme/feed/ 0 55
    Amazonアソシエイトの登録URLは削除してもらえるよ https://yukari-n.info/posts/amazon-link/ https://yukari-n.info/posts/amazon-link/#respond Thu, 08 Jun 2017 00:00:15 +0000 https://yukari-n.info/?p=86 "Amazonアソシエイトの登録URLは削除してもらえるよ" の続きを読む

    ]]>
    Amazonアソシエイトでは登録できるURL数に上限があります。
    此処で言うURLというのは実は(サブ)ドメイン単位なので、サブディレクトリにコンテンツを増やしていく分には問題ありません(Twitterなどは不明)。
    しかし、10個制限は一部のアフィリエイターには辛いかも。

    私はサイトを多数持っているわけではないのですが、独自ドメインを取得するまで長かったこともあり、度々移転を繰り返していました。
    そうすると、通常の審査依頼ではどんどん登録URLが増えてしまいます。

    審査結果メールを紛失したり、移転したサイトをリストから削除していると(おそらくこれだけでは削除したことにはなっていない)、今自分のアカウントに何個サイトが登録されているかもわからなくなってしまいます。

    しかし、このような場合は使っていないサイトを削除してもらうことができます。
    具体的には、サイト審査申請時に以下の要領で連絡します。

    アソシエイトに参加しているサイトURLが変更となりました。
    旧URL
    http://…
    新URL
    http://…
    登録情報の変更のほどよろしくお願いいたします。

    こうすることで、自動的に旧URLは使用しないと認識され、審査結果メールにてその旨通知されます。心配であれば削除してほしい旨を明記しても良いと思います。
    移転はするけど旧コンテンツも残す場合は、通常のサイト追加申請を行いましょう。

    ]]>
    https://yukari-n.info/posts/amazon-link/feed/ 0 86
    JekyllのAtomの文字数を制限する https://yukari-n.info/posts/jekyll-feed/ https://yukari-n.info/posts/jekyll-feed/#respond Tue, 06 Jun 2017 00:00:04 +0000 https://yukari-n.info/?p=98 "JekyllのAtomの文字数を制限する" の続きを読む

    ]]>
    ちょっとめんどくさかった。

    Liquidでの文字数制限

    truncateまたはtruncatewordsが使えます。
    日本語の場合はtruncateの方が手っ取り早いでしょう。

    jekyll-feedの改造

    JekyllのAtom feedはjekyll-feedというgemで生成されています。
    テンプレートファイルはgem本体の中にあるので探して編集します。アップデートの度にやり直しなので面倒ですが仕方ありません。

    gem environmentで場所を教えてもらえます。私の場合は「GEM PATHS:」の一番上のディレクトリにありました。
    jekyll-feed-0.9.2/lib/jekyll-feed/ にfeed.xmlがあるので編集します。
    {% raw %}{{ post.content | strip | xml_escape | truncate: 100, "..." }}{% endraw %}くらいにしておけば良いんじゃないですかね。

    編集には管理者権限が必要な場合があるのでその時はviとかでやる。

    ]]>
    https://yukari-n.info/posts/jekyll-feed/feed/ 0 98
    古いWindows PCにLinuxを入れて開発用端末にした手順 https://yukari-n.info/posts/windows-linux-dual-boot/ https://yukari-n.info/posts/windows-linux-dual-boot/#respond Mon, 29 May 2017 00:00:31 +0000 https://yukari-n.info/?p=59 "古いWindows PCにLinuxを入れて開発用端末にした手順" の続きを読む

    ]]>
    若干調子の悪いWindows Vistaマシンがもったいなかったので。
    あとメインの端末でGoogle Cloud SDKの不具合があってGAEに接続できないので。
    もう長らく使ってなかったやつだし失って痛いデータも無い。一石二鳥。

    マシンスペック

    • Windows Vista Home Edition SP2
    • Intel Core2 Duo P8400
    • Memory 2GB

    1. Windowsの掃除

    長らく使っていなかったとはいえ、容量を空けるついでにメンテだ。

    1. システム修復
    2. ディスクスペースの確保(不要なログファイルやソフトなどを削除)
    3. デフラグ
    4. 一旦オンラインにしてWindows Updateをかける(いつぞや使う時のため)

    ファイル圧縮はやるの忘れましたが、結構確保できたので良しとする。
    というか、この数日メンテしていて一度も不具合が出ない…買い換えるのは時期尚早だったのでは…。

    2. Linuxのインストール

    どれにしようか悩んだがXubuntuにした。
    メモリが2GBなので32bit版にしたのだけど、Atomのインストールなど一筋縄ではいかなかった…。

    インストールはこちらの記事が参考になりました。

    私の端末ではメーカーロゴが出たらF2を押すことでBIOS設定ができる。

    既にパーティションが4つあり、これ以上分割できなかったため、Windows側のCドライブとDドライブをあらかじめ結合する必要があった。


    110GB程をUbuntuに充てたが、Windowsはほとんど使う予定がないし、もっと広げてもよかったかも。

    CDが取り出された後、

    A start job is running for ubuntu live CD installer

    のまま動かなくなった時は、Ctrl+Cで中断すればすぐに再起動されてOS選択画面になる。

    各種セットアップ

    Google Driveをマウント

    すごく簡単にできました。

    ごきげんよう Googleが提供しているサービスでGoogleドライブがあると思う。 オンラインストレージサービスだ。 Chromebook(Chrome OS)のファイル置き場になるし、保存された文書や画像などをモバイル端末に表
    LinuxでGoogleドライブを使えるようにしてみたのでメモ残しておく - あすへん! 〜薙月の明日への変化〜

    但しマウントしたフォルダ内のサイトをJekyllで直接ビルドするのにはとても時間がかかる(できなくはない)。
    同一サイト内に複数のJekyllを入れている関係もあり、自動的にGAEへのステージ用フォルダと、GoogleDrive(バックアップ)へのコピーができれば良さそうだ。
    とりあえずrsyncのシェルスクリプトは作った。自動化はまだこれから(必要になったら)考える。

    Atomのインストール

    公式では32bit版はサポートされていないどころか配布もされていない。非公式のを使う。自己責任で

    Google Cloud SDKのインストール

    公式サイトの通りに。久々にスイスイ動くgcloudを見て感動している。
    メイン端末の方、何が起こってしまったのか…(過去記事を参照)。

    セキュリティ対策

    めんどくさい(オイ)のでファイアウォールだけ。

    まとめ

    無事に入れられたし、このサイトもGAEに移転できました。
    SSL対応はまた後日。

    ハードが本格的にイカれたら、今後はメインマシンに更に軽量のLinuxを入れても良いかも。
    というかMacBook買う予定だったけど安いWindowsにLinux入れても良いな…。

    ]]>
    https://yukari-n.info/posts/windows-linux-dual-boot/feed/ 0 59