WordPressでDuplicatorなどの移管ツールを使ってサイトを移管した後に、WordPressの管理画面は表示されるのにWEBサイトが表示されない場合の原因と対処法についてまとめています。
エラーの発生状況
ここで紹介するエラーの発生状況は以下のようになっています。
WordPressの管理画面にはアクセスできる
すべてのWEBサイトにアクセスできないわけではなく、WordPressの管理画面にはアクセスすることができます。
操作も普通に行え、投稿や固定ページの一覧なども取得できています。
WEBサイトが表示されない
一方、WEBサイトのURLをたたくと「このページは動作していませんsaporal.net では現在このリクエストを処理できません。HTTP ERROR 500」が表示されます。
エラーの発生原因
このエラーの発生原因はPHPサーバーの割り当てメモリ不足でした。
移管前のサーバーでは.htaccessを編集してmemory_limitなどを上げていたのですが、移管後に生成された.htaccessはそういった記述が削除され、WordPressをデフォルトで作成したときの状態になっていました。
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /x/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /x/index.php [L]
</IfModule>
# END WordPress
php_value memory_limit 1024M
php_value max_input_vars 2000
php_value post_max_size 64M
php_value upload_max_filesize 32M
↓ Duplicatorプラグインで移管・複製した後
# This file was updated by Duplicator on 2024-05-10 11:06:47.
# See the original_files_ folder for the original source_site_htaccess file.
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /ingrid/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ingrid/index.php [L]
</IfModule>
# END WordPress
memory_limitなどの記述がごっそりなくなっています。
php_value memory_limit 1024M
php_value max_input_vars 2000
php_value post_max_size 64M
php_value upload_max_filesize 32M
(参考)エラーの発生原因
なお、なぜこのエラーがわかったかというと、WordPressの管理画面でページを編集しようとしたところ次のようなエラーが表示されました。
ここで「プレビューデバッグについては、ここをクリックしてください」というリンクをクリックしたところ、次のようなページが表示されました。
エラーの内容は以下のようになっています。
エラー対処法
エラーの対処法は簡単です。元のサイトの.htaccessと同じように「memory_limit」などを追記します。
php_value memory_limit 512M
php_value max_input_vars 2000
php_value post_max_size 64M
php_value upload_max_filesize 32M
lolipopサーバーの場合
なお、lolipopを使っている場合は対象のドメインのPHP設定も変更する必要があります。
メニューの「PHP設定」を選択します。
対象のドメインの「設定」をクリックします。
一番下に「php_value, php_flagを利用可能にする」があるのでこれをONにします。
以上で設定は完了です。
再度ブラウザでURLをたたくとWEBサイトがきちんと表示されました。