朝起きたらWordPressがサイトダウンしてるとの通知が

nginxのログ調べてみたら、
phpでpreg_replace(): Compilation failed~
みたいなエラーが出てたのでphpが原因か、
ちょうどダウンする少し前に自動でdnf upgradeでphp関連のrpmがいくつかアップグレードされてたのでまぁコレが原因だろう。

とりあえず手動で dnf upgrade してみる・・・動いたw

2022-02-24T08:23:54+0900 DEBUG アップグレード済み: php-pecl-igbinary-3.2.7-1.fc35.x86_64
2022-02-24T08:23:54+0900 DEBUG アップグレード済み: php-pecl-imagick-3.7.0-1.fc35.x86_64
2022-02-24T08:23:54+0900 DEBUG アップグレード済み: php-pecl-redis5-5.3.6-1.fc35.x86_64

この3つが更新された、アップグレードのタイミングが悪かったとかそんなところでバージョンの不整合でも起こってたのか?
まぁ動いたので良いか。

php8に更新してみた

WordPress本体は対応していてもプラグインが未対応の物がある、
php-code-widgetはエラーになるので削除、今は使ってないし。
wp-optimizeはcssの処理が有効になってると表示がおかしくなるのでそこだけdisableに。

うちの環境だと今の所はそれくらいかな、とりあえず上記以外に目立った不具合は見当たらないのでこのまま運用してみる。

追記:
wp-optimizeはminify関連全滅か?
javascriptのminifyもdisableにしないと画像が表示されなくなってた。
しかしなんだこれ、管理者でログインしてると表示されるんだよね・・・
ログインしてない時だけ表示されないから気付くのが遅れた。

sqlインジェクション攻撃が来てた

wordfenceから警告メールが飛んできた、初めて見るタイプのメールだったんで一瞬驚いたが・・・
4.7.2で修正された項目(WordPress Codex 日本語版)にsqlインジェクションの脆弱性があったのでそれを狙った物かな?
よほど放置されてるサーバーでもなければとっくに更新済みだと思うけど。

webサーバを H2O に変えてみた。

今までApacheを使用していたのですが、
DeNAで開発されている H2O と入れ替えてみました。

とりあえず使用するデータやwebサーバ以外の設定を極力維持する方向で入れ替え。
ログを確認してみたらちゃんとhttp2で通信してるみたいだ。

h2o の設定ファイルって結構独特ですね、
tabはng、インデントはスペース、redirect等のパラメータはインデントしていないとエラーになる。
追記:yamlって形式なんですね、知らなかったよ・・・

うちの設定、まぁ消す意味のあるところは無いのでそのまま載せている。
ポイントは http2-casper: ON 、これがないとキャッシュ機構の一部がうまく動かなかった。

W3 Total Cacheの Minify、jsとcssを無効にしないとキャッシュが読めなくてレイアウトが悲惨な事になる。
この辺りも後で調べておかないとなぁ。

2016/4/19追記:
jsとcssはそのままだとgzipが無効になってるので file.mime.settypes を追加。

user: apache

http2-casper: ON

file.custom-handler:
    extension: .php
    fastcgi.connect:
        host: 127.0.0.1
        port: /run/php-fpm/www.sock
        type: unix
file.mime.settypes:
    "application/javascript":
        extensions: [".js"]
        is_compressible: yes
    "text/css":
        extensions: [".css"]
        is_compressible: yes

file.index: [ 'index.php','index.html' ]

hosts:
  "op.cx:443":
    listen:
      port: 443
      host: 202.75.235.198
      ssl:
        certificate-file: "/etc/letsencrypt/live/op.cx/fullchain.pem"
        key-file: "/etc/letsencrypt/live/op.cx/privkey.pem"
    paths:
      "/":
        file.dir: /home/kdsoft/public_html/wp
        file.dirlisting: on
        redirect:
            url: /index.php/
            internal: YES
            status: 307
  "op.cx:80":
    listen:
      port: 80
      host: 202.75.235.198
    paths:
      "/":
        redirect:
            status: 301
            url: https://op.cx/
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o/h2o.pid

テーマの設定が古すぎた?

DBから設定消去とwebからリセットかけて再設定してみたらなんかレスポンスが早くなったような?
ついでに各種リダイレクトも仕込んでみた、
http→https
ip直やop.cx以外のホストを指定した場合→op.cx

いろいろと過去の遺産(別名ゴミ)が残ってるので一度掃除したほうがいいかなぁ。

トップページがしばらく表示できなくなってたみたいだ・・・

wordpressのアップデートでキャッシュ系プラグインがちゃんと動いてなかったっぽい?
とりあえず停止したら問題無さそうなので様子見。
トップ以外は表示できてたからちゃんと確認してなかった・・・
ついでにあちこち微調整中。