wordpressの505エラー

PHPのバージョンを7.3(CGI)に上げたとき、505エラーが発生した。いろいろ調べた結果、何とか直ったので、参考になったサイトを紹介する。

ちなみに、当方の環境は、ロリポップとムームードメインだ。

前提として、これをすれば必ず505エラーが直るというわけではない。直すときは自己責任でお願いします。

505エラーの直し方

調べてみると、どうやらPHPをバージョンアップした際に起こるエラーとのこと。
具体的にはPHP5.x系からPHP7.x系にアップデートすると、このエラーが起こるようです。

FTP経由でワードプレスのディレクトリの直下にある「wp-login.php」にアクセスし、780行目付近にある下記のコードを書き換えることで、エラーが解消されました。

書き換え前
$user = wp_signon( ”, $secure_cookie );
書き換え後
$user = wp_signon( array(), $secure_cookie );

【WordPress】PHPのバージョンアップに伴うエラーの解消 – 株式会社オンズ

 

経過内容

エラーが起きるまで、いろいろな作業をしていたため、それらも紹介する。

1.「.htaccess」をFTPソフトで変更した

具体的には、「.htaccess」の「RewriteRule ^wp-admin 404-siteguard [L]」を削除した。

「SiteGuard WP Plugin」が関係しているらしい。

2.「.htaccess」を初期化した

「「.htaccess」をいじったからおかしくなった!」と思い込んでいたため、「.htaccess」を初期化した。

[php]

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress[/php]

自分はプログラマーではないので、「.htaccess」の初期化というのがよく分からないのだが、とにかく、初期化した。

3.プラグインをすべて無効化した

次に、filezillaからサイトの「plugins」を「plugins0」のように変更して、プラグインを無効化した。

だが、これに意味はない。

 

エラー内容

以下から、エラーログに出た内容をのせる。

[php]Warning: Illegal string offset ‘remember’ in /home/users/1/xxx/web/xxx/wp-includes/user.php on line 41

Warning: Cannot assign an empty string to a string offset in /home/users/1/xxx/web/xxx/wp-includes/user.php on line 41

Warning: Illegal string offset ‘user_login’ in /home/users/1/xxx/web/xxx/wp-includes/user.php on line 56

Fatal error: Uncaught Error: Cannot create references to/from string offsets in /home/users/1/xxx/web/xxx/wp-includes/user.php:56 Stack trace: #0 /home/users/1/xxx/web/xxx/wp-login.php(806): wp_signon(”, ”) #1 {main} thrown in /home/users/1/xxx/web/xxx/wp-includes/user.php on line 56[/php]

 

「xxx」には自分が設定した、フォルダの名前などが入る。

4つのエラーが出たので、「エラーが多くて大変だ」と思ったが、そこまで難しい作業ではなかった。

ちなみ、エラーの原因が分からない方は、以下のようにエラーログをオンにしてみよう。

  1. ユーザー専用ページ内の『サーバーの管理・設定』>『PHP設定』をクリック
  2. エラーが発生しているドメインの「php.ini」の「設定」をクリック
  3. 「display_errors」を「On」に変更
  4. 画面下部の「php.iniの変更」をクリック
  5. HTTP ERROR 500 が発生したページにアクセス

HTTP ERROR 500というエラーが発生します – ロリポップ!レンタルサーバー