古いWordPressを古いPHP環境で動かす

・・・という経験したので記録しておく。先日のFacebookのグレーアカウントの記事といい、普通は誰も経験しないし経験したところで今後の仕事の知見として役立ちそうもない記事ばかり蓄積している気がする。
修行するぞ修行するぞ修行するぞ修行するぞ修行するぞ...
こちらの環境はmacOS Catalina、MAMP

古いWordPress:3.1.4

元サイトがこれだったので。追ってバージョンアップするとしても、とりあえずローカルPC上で3.1.4をインストールして同じ環境構築して様子をみたい。という事情。これをローカルPC上のMAMPで動かしたい。

  • 古いWordPress自体は公式からあっさりダウンロードできた。よしよし。
  • ではインストール画面を表示・・・できない。「Internal Server Error HTTP 500」。
  • エラーログ確認。Console.appから /Applications/MAMP/logs/php_error.log を見る

PHP Parse error: syntax error, unexpected 'new' (T_NEW) in /___WPまでのパス___/wp/wp-settings.php on line 219

  • なるほど!わからん。ググったらPHP7じゃ使えなくなった文法が使われてるとのこと。なるほどですね。ちなみになんか $hoge =& new fuga() のような記述。
  • エラーとなった記述はこのバージョンのWordPressの至るところで使われており、修正して云々はできなそう。なのでPHPのバージョンを下げる。5系まで下げれば良さげなのでそうしよう。
  • MAMPでは設定で直近2バージョンのPHPが選択できるので、/Applications/MAMP/bin/php/ の中で最新バージョンと php5.4系だけ残してあとはリネームしておく。
  • MAMPの設定でこの5.4を選択
  • Apache再起動
  • ちなみに phpMyAdmin 使えるのか確認したところPHP5.5以上が必要だと怒られる。phpMyAdmin はいちおう使いたいので5.4じゃなくて5.6系を使うことにする。
  • ようやく再度WordPressインスール
  • 成功しました的な画面が出るが、その画面の上部に思い切りエラーが出てる!

WordPress database error Specified key was too long; max key length is 767 bytes

みたいなの。

  • ググる。wp-config.php文字コードが utf8mb だと出がちなエラーらしい。マルチバイトだとバイト数の計算が違う的なやつだろうと推測。詳しくは調べない。
  • 元サイトの wp-config.php 見ると utf8mb ではなく utf8 だったので真似する。
  • phpMyAdmin から全テーブル削除して再度インストール(やっぱり phpMyAdmin 使えるようにしておいてよかった←SQL使えない人)
  • みたび WordPress インストール
  • 成功!

ただこれだとこのWP動かすときだけPHPのバージョン切り替えないといけない。.htaccessPHPのバージョン切り替える方法もちょっと試したがうまくいかなかった。どうせ短期間だけなので深追いはしていない。
→深追いしました。以下の記事。
neriu.hatenablog.com