少し前のバージョンのWordPressを引っ越し&アップデートしようとしたところ、引っ越し直後にログイン画面が Internal Server Error 500 で開かない現象に遭遇。
慌てず騒がずApacheのエラーログを確認。
PHP Warning: Illegal string offset 'remember' in /PATH/TO/WORDPRESS/wp-includes/user.php on line 41
PHP Warning: Cannot assign an empty string to a string offset in /PATH/TO/WORDPRESS/wp-includes/user.php on line 41
PHP Warning: Illegal string offset 'user_login' in /PATH/TO/WORDPRESS/wp-includes/user.php on line 56
PHP Fatal error: Uncaught Error: Cannot create references to/from string offsets in /PATH/TO/WORDPRESS/wp-includes/user.php:56\nStack trace:\n#0 /PATH/TO/WORDPRESS/wp-login.php(775): wp_signon('', '')\n#1 {main}\n thrown in /PATH/TO/WORDPRESS/wp-includes/user.php on line 56
最後の行が怪しいので、
PHP Fatal error: Uncaught Error: Cannot create references to/from string offsets in /wp-includes/user.php:56
で検索。
すると、下記サイトがヒット。
そのものビンゴです。このページに書いてある通り、
/PATH/TO/WORDPRESS/wp-login.php
の以下の行を修正。
$user = wp_signon( "", $secure_cookie ); //788行目、この行を
$user = wp_signon( array(), $secure_cookie ); //第一引数を空文字列から空の配列に変更
これでログインできるようになりました。このくらいで済んで良かった……。