丁稚さんのブログを改修したのだ…

ぜんぜん更新してない丁稚さんブログです。
雑記。

見た目ぜんぜん変わらないんですが、このブログをちょっと改修してました。

すぐわかるとおりここはWordPressでできているのですが、
なぜか重い
という問題点があって…。

サーバ構成的に、もともと

みたいに仮想化ネストしまくりのワケワカメ状態になっていました。ホントはさらに汚いです。

特定のWordPressプラグインを利用するとNginxがタイムアウトするまでPHPがストールしてしまうに至って、業を煮やしてまじめに原因を調査しはじめました。

…しかしまったく理由わからず。
しかもクライアントマシンで適当に docker-compose した WordPress では、そのプラグインは快適快調に動くのです。
(ホントはもうちょっとまじめにプロファイル見てるし、DBのヘルスチェックとかぜんぶやってます…)

もう疲れた…そこで。

というのは、RedHat系のディストリビューション(Atomicは知らない)はけっこうDockerの動作が buggy なのです。
一部のFSドライバがおかしくて永続化するとファイル消せなくなるとかイロイロ…。
ということで自分に都合悪いことはぜんぶCentOSのせいにして、PHP-FPM周りのコンテナ環境を作り直すことにしました。

こんな感じです。

  • Alpine Linux でDockerホスト専用環境をつくった
  • コンテナもAlpine Linux+PHP7ベースで新たにつくりなおし
  • WordPressだけそっちのコンテナに移した

ということですね。

結果:

  • Docker周りがまっさらできれいになった
  • WordPressのコンテナがおよそ2倍の速さになった
    • といってもコレはほとんどPHP7+apcuに移行した効果ですが
  • いままでストールしていたプラグインが正常に動作するようになった

docker-compose 周りでまたナゾの秘伝タレスクリプト作ったりして、いろいろ苦労はさせられましたが、とりあえずマンゾク。

ちなみに悪かったところ:

  • 以下のWordPressプラグインは正常に動かなくなった
    • db-cache-reloaded-fix
    • 原因は調べてないですがPHP7では2017/12/06時点バージョンは動きません
    • ewww-image-optimizer
    • session_write_close がないとか言われる。そんなアホな。たぶんPHP7がらみ
  • function ( $var ) use ( $var ) {...} とかやってるコードは動かない
    • PHP7ではこの書き方は不可

めんどくさかったところ:

  • Alpine LinuxはHyper-Vとの相性に問題が残ってる
    • ntpd に chronied かなにかを選ぶと初回ブートできない
    • busybox ntpd を選ぶとよい

ということで。
単なる雑記でしたが。

これで本来の作業が進むかな?