古めのWordPressサイトをテスト環境でアップデート
元のサイト
- php 5.4
- mysql 5.6.23
- wordpress 3.6
Local by FLywheel でテスト環境を用意
- nginx 1.16.0
- php 7.4.1
- mysql 5.7.28
- wordpress 5.6
Export / Import ツール
php.ini
必要に応じて upload_max_filesize
など適宜編集。
php.ini
ファイルの場所はこのあたり。
/Local Sites/fuga/conf/php.ini.hbs
そのままインポートしてみる
PHP5のサイトをPHP7にインポートすると失敗するかも...という警告。
そのまま実行。
プラグインのWarningでダッシュボードに入れず
Warning: Declaration of PageNavi_Options_Page::validate($options) should be compatible with scbAdminPage::validate($new_data, $old_data) in /Users/hoge/Local Sites/fuga/app/public/wp-content/plugins/wp-pagenavi/admin.php on line 15
とか、
Warning: Cannot modify header information - headers already sent by (output started at /Users/hoge/Local Sites/fuga/app/public/wp-content/plugins/wp-pagenavi/admin.php:0) in /Users/hoge/Local Sites/fuga/app/public/wp-includes/pluggable.php on line 1296
とか。
調べてみたところ、
How to Fix PHP7 Error - WordPress Support
という記事もありますが、そもそもかなり古いプラグインみたいなので wp-pagenavi
のフォルダ名を変えるなどして無効化。
するとDatabaseの更新が走ってログインページが表示されました。
ダッシュボードにログイン
ここで admin
のパスワードが必要になったので、
WordPress ローカル環境でパスワードを忘れてしまったときの対処法
こちらを拝見。
Local環境だと Database
-> Open Adminer
から wp_users
テーブルを開いて user_pass
を適宜更新。
ダッシュボードに入れました。
サイト表示
各種プラグインの更新はひとまず保留にしてサイトを表示してみると、
Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /Users/hoge/Local Sites/fuga/app/public/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384
Lightbox Plus ColorBox 2.6
を停止。
次に、詳細ページを表示。
( ! ) Warning: Use of undefined constant - assumed ' ' (this will throw an Error in a future version of PHP) in /Users/hoge/Local Sites/fuga/app/public/wp-content/themes/piyo/content.php on line 157
Call Stack
テーマファイルに全角スペースが入っている様子。
Warning: Use of undefined constant - assumed ' ' (this will throw an Error in a future version of PHP) in /Users/hoge/Local Sites/fuga/app/public/wp-content/themes/piyo/archive.php on line 92
Call Stack
これも同じ。
; ?>
を ; ?>
に置換。
ざっとサイト全体を眺めて Warning
は無くなったのでひとまずの作業終了。
あとは、無効化したプラグインを別のプラグインに置き換えるとか、テーマを編集して対応するなど。
公開サーバーの更新
- wp-config.php
- wp-content/
- データベース
念のためこれらをバックアップしておいて、WordPressのzipファイルを手元で展開。
そしてサーバー側のファイル(フォルダ)を手元のファイルで上書きしていく流れになります。
詳しくは下記のサイト。
WordPress のアップグレード - 手動更新
Upgrading WordPress – Extended Instructions
Discussion