Oracle Linux 8のphpアップデートでwordpressが動かなくなった件

はてなからwordpressへの移行を手伝ったメモ

https://twitter.com/88MULTimkII/status/1461000007943802882
https://twitter.com/88MULTimkII/status/1462775312979152899
https://twitter.com/88MULTimkII/status/1462971728385044488
https://twitter.com/88MULTimkII/status/1462975407712440324

WordPressへの不正アクセスをfail2banと連携してiptablesレベルで止める

WordPress側はプラグインインストールするだけ

Linux側が面倒。

(1) WordPressのプラグインディレクトリにあるfail2ban用の設定ファイルをコピー

WordPressのプラグインディレクトリ内 wp-content/plugins/wp-fail2ban/filters.d/ にあるfail2ban用のfilter設定ファイルを /etc/fail2ban/filter.d/ ディレクトリにコピーする

(2) fail2banのjail.local 設定ファイルに設定追加

サーバローカルの設定をおこなう為の /etc/fail2ban/jail.local ファイルにwordpress-hard, wordpress-softについての設定を追加する。

CentOS7の標準設定およびWP fail2banプラグイン標準設定で使用した場合、WP fail2banプラグインがsyslogに出力したログは /var/log/messages に保存される。

そのため、 「logpath」を「/var/log/messages」と指定する

[wordpress-hard]
enabled = true
filter = wordpress-hard
logpath = /var/log/messages
bantime  = 25920000
maxretry = 1
port = http,https

[wordpress-soft]
enabled = true
filter = wordpress-soft
logpath = /var/log/messages
maxretry = 3
bantime  = 25920000
port = http,https

(3) fail2banを再起動して反映

「systemctl restart fail2ban」を実行して設定変更を反映させる

ngnixでwordpressのサブディレクトリタイプのマルチサイトを動かす設定

MariaDBをバージョンアップした

MariaDB が10.1で、そろそろサポートが終わりそうなので、アップデートした。

ただし、yum updateではmaria-db-serverへのアップデートは適用されず、古いバージョンを削除して再インストールし、サービス起動後、mysql_upgradeコマンドを実行、という手順を行う必要があった。

Windows Server上でIISを使ったWordPressサーバを作る

途中まで書いたところで、書く場所を間違えていたことに気がつくなど・・・移植面倒だからこのままでいいや


Windows Server上でIISを利用したWordpressサーバを立てるという話、既存の書いてある情報がイマイチだったので、実際に試してみた。

2021年1月14日追記: WindowsServer2019で試みたところ、インストールが完了しない状態となりました。

結論的なところ

・インストールはWeb Platform Installer 5.1を使うと、phpインストール、IISインストールとポート80番で公開するためのIIS設定も含めてやってくれる

・php 7.1.25(x86)がインストールされるがプログラム一覧には出てこない
 → 2020/07/14時点(2021/01/14でも同じ)では php7.1.29(x86)
  php 7.1だと下記の様に警告が出てしまう

・MySQL Server 5.1とMySQL Connector Net 6.9.7がインストールされ、こちらはプログラム一覧に出る

・WordPress 5.0.3がインストールされた(2019/05/24時点)
 → 2020/07/14時点ではWordPress 5.2.1

・WordpressのWeb管理画面からのアップデートは難しい

・php,MySQL Serverのアップデートは自分達でなんとかする必要がある。

設定手順

その1: Windows Serverのセットアップ

Windows Serverを適切にセットアップする。

その2:Web platform Installerを実行

Microsoft Web Platform Installerを入手する。

「Install this extention」のリンクをクリックするとv5.1用のセットアップがダウンロードできるので、実行する。

スタートメニューに「Microsoft Web Platform Installer」が追加されるので、実行する。

まずは下記ような「スポットライト」のところが表示される。

右上の検索ウィンドウに「wordpress」と入れて検索する。

表示される「WordPress (英語)」を「追加」する。

「インストール」をクリックすると、これからインストールするMySQL Serverの管理ユーザrootにつけるパスワード入力を求められるので、パスワードを入力する。

次に下記の様な「前提条件」と「直接ダウンロードリンク」なんてのが表示されるので、一瞬手動でインストールしなきゃいけないの!?とか感じるけれど、これはMicrosoft製品じゃないものをインストールすることによる確認のため。

「同意する」を選んで進める。

必要なファイルのダウンロードとインストールが開始されます。

IIS上のどこにWordpressを登録するかを指定します。

WordPress上で使用する各種パラメータを設定します。

「続行」をクリックするとWordpressがインストールされます。

セットアップが完了し、インストールされたものの一覧と、WordPress用に作成されたMySQLデータベースの名前/ユーザ名/パスワードを確認します。

(2020/07/14に再実行したところ、上記ではPHP 7.1.25(x86)となってりうところが、PHP 7.1.29(x86)に変わりました)

その3 インストール後の状況

インストール後、スタートメニューにはこんな感じでプログラムが増えます。

プログラム一覧には以下の様になります。(vSphere環境上なのでVMware Toolsがいます)

2020/07/14に再実行したところ、Visual C++の再配布DLLの名称が変わっていました。それ以外は同じですね。

その4 WordPress初期セットアップ

「http://IPアドレス/wordpress/wp-admin/install.php」にアクセスし初期セットアップを実行します。

MySQLデータベースへの接続設定は完了している状態なので、管理者ユーザ名とパスワード、メールアドレスの登録となります。

その5 追加設定

標準設定の場合、個別記事へのリンクが正常に動作しません。

[設定]-[パーマリンク設定]の「共通設定」にて「基本」に変更することが最も設定が面倒くさくない対応となります。

アップデート問題

WordPressのアップデート

WordPressのWeb管理画面にアクセスすると、以下の様にWordPressのアップデートが検出されます。

しかし、更新しようとすると、下記の様にftpによる接続情報が求められます。

IISのftpサーバ機能を有効にするという手もあるんでしょうけど、アップデートのためだけに有効にするのもリソースの無駄遣い。

CLIによるアップデートで対応できます。

WP CLI」というコマンドラインでWordPressをアップデートするためのツールが提供されているのでそれを利用します。

標準設定のままWordPressをインストールすると「C:\Inetpub\wwwroot\wordpress」にWordPressがインストールされています。

で・・・WP CLIのページからwp-cli.pharをダウンロードして適当な場所に置きます。

コマンドプロンプトを開いて「cd c:\inetpub\wwwroot\wordress」に移動したあと

「php C:\User\Administrator\Downloads\wp-cli.phar core update」と実行すると、WordPress本体がアップデートされます。

2019/05/24実施時
2020/07/14実施時

プラグインのアップデートは「 php C:\User\Administrator\Downloads\wp-cli.phar plugin update –all」で行います。

2019/05/24実施時
2020/07/14実施時

テーマのアップデートは「 php C:\User\Administrator\Downloads\wp-cli.phar theme update –all」です。

このほか、翻訳のアップデートがある場合は「(略) language core update」「 (略) language plugin update –all」「 (略) language theme update -all」を実行します。

phpのアップデート

インストールされたphpはphp 7.1.25 MSVC14 x86だった。

php公式の「Windows版ダウンロードページ」にはphp 7.1.xの最新版として7.1.29がある。

このうち「VC14 x86 Non Thread Safe」が元々インストールされていたもののにあたる。(なお、 VC14 x86 Thread Safe の方は「ZTS MSVC 14 (Visual C++ 2015) x86」という表記となる)

phpはインストーラ形式ではないため、zipを展開し、「C:\Program Files (x86)\PHP\v7.1」にインストールされているものと中身を上書きすることで、アップデートとなる。

2020/07/14追記

現在のWordpressではphp 7.1は非推奨であるため、PHP 7.4.xを使用しようと思ったのだが、単純な入れ替えでは、IISのエラーとなって実行できなかった。

MySQLのアップデート

MySQLの 「Windows版ダウンロード」から「mysql-installer-community-???.msi」のファイルをダウンロードしてインストールすればアップデートされそうだったのですが、エラーでMySQL Serverのアップデートは失敗。

MySQL Connectorのみアップデートできました。

なお、「Windows (x86, 32-bit), MSI Installer」とダウンロードページにありますが「Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries.」とも記載されているようにダウンローダが32bitなだけとなります。

「Reconfigure」をクリックしたらエラーになってしまいました。

エラー内容は「Bug #81594 installing error “Package has already been queued”」と同じでした。


2020/07/14実施時

mysql-installer-community-8.0.21.0.msi を使ってみたところ、Reconfigureはできるようになりましたが、MySQL Server 5.1.73の設定変更を行えるだけでアップデートはできなかった…

右下の「Catalog…」ボタンをクリック

「MySQL Server」を選択し、右側の「Update …」をクリック

…Catalog更新しても、アップデートがない、と言われてしまう…

MySQL 8.0 Reference Manual」の「2.11.10 Upgrading MySQL on Windows」に答えがあった。

MySQL Installer does not support upgrades between release series, such as from 5.7 to 8.0, and it does not provide an upgrade indicator to prompt you to upgrade.

2.11.10 Upgrading MySQL on Windows

残念…

こっちのblogではないとこがアタックされた件

で・・・これを対処した次の日にWordpress 5.2が出たのは5.1系のバグだったりしたんだろうか?