WordPress がインストールされているディレクトリ内の .htaccess ファイルに不正なリダイレクトや制限が書き込まれていないか確認してみてください。
こちらのトピックの回答が参考になれば。
返信ありがとうございます。
.htaccess はリネームしてみましたが、効果ありませんでした。
また、DBおよびWebサイトのディスク容量については問題ありません。
サーバーはどちらをお使いですか?
エックスサーバーであればですが、リカバリー機能をお使いになってみるのもひとつの方法かなと思います。
サーバは自前で構築しています。
DBをDumpし、再構築すれば解決する気はするのですが、もう少しスマートに解決できないものかと思案している次第です。
なるほどです。
すみません、自前のサーバーの扱いには詳しくないので、別の方からの回答をお待ちいただければと思います<(_ _)>
Q1 Webサーバのアクセスログやエラーログに何か出てないですか?
Q2 Webサーバの設定ファイルには、どういうディレクティブを設定してますか?
Q3 違うディレクトリにまっさらなWordPressを入れて、そこをドキュメントルートにする新たな仮想サーバを設定してみて、ログインできるか確かめてみるとどうなりますか?(新たにサブドメイン作ることなるので、DNSの設定も必要です。)
A1 アクセスログやエラーログに目立ったものはありません。ステータスそのものは200が返ってきています。
A2 VirtualHostの設定をしているのですが、以下を確認できています。
・いつ本現象が発生したかわからないが、それまでは問題なかった
・他のVirtualHostで稼働しているWordPressは問題ない
・ディレクティブの設定は変更していない
A3 A2にあるとおり、他VirtualHostだと問題ありません。
該当VirtualHost内のWordPressに問題がありそうなので、再構築で改善する気はするのですが…
こんにちは。
対象の WordPress サイトのインストールディレクトリにある、wp-config.phpにサイトのURLを指定して、ログインできるかどうか試してみてはいかがでしょうか?
define('WP_HOME','https://www.example.com');
define('WP_SITEURL','https://www.example.com/wp');
example.com の部分は実際のドメインに置き換えてください。
WP_HOME サイトが表示されるべきURL
WP_SITEURL wp-adminフォルダがあるフォルダのURL
をそれぞれ指定します。
サイト URL の変更
wp-config.phpにサイトのURLを指定しましたが、改善されませんでした。
なるほど。
そうしたら、データベースのバックアップを取得された上で、サイト URL の変更 のページ、「データベースで URL を直接編集する」をご確認ください。
上記でも改善しない場合、他の有識者の方のコメントもお待ちください。
- wp_options テーブルのフィールド一覧が表示される。
- option_name フィールドのカラムで、siteurl を探す。注: wp_options 内には複数のページがあるので、ページ送りを使って探す。
- 通常は行の一番左にある編集アイコン(エンピツ)をクリック。
- option_value の入力欄で、新しい URL を入力する。
- 間違えていないか確認し、「実行する」をクリックして保存。
- wp_options テーブルに戻るので、今度は home フィールドを探して編集アイコンをクリック。
- option_value の入力欄で、新しい URL を入力して保存する。
こちらを確認したところ、意図どおりで問題ありませんでした。
なお、デバッグモードで状況を確認したところ、以下に問題があることが判明しました。
WordPress データベースエラー: [The MySQL server is running with the --read-only option so it cannot execute this statement]
INSERT INTO
wp_options
(option_name
, option_value
, autoload
) VALUES ('_transient_doing_cron', '1234567890', 'on') ON DUPLICATE KEY UPDATE option_name
= VALUES(option_name
), option_value
= VALUES(option_value
), autoload
= VALUES(autoload
)
MySQLは以下のとおりです。なお、実行ユーザの権限は”ALL PRIVILEGES”です。
SHOW VARIABLES LIKE 'read_only';
Variable_name Value
read_only OFF
本件、おかげさまで解決しました。
原因はWeb、DBを冗長化しており、片方がread_only ONだったため、1/2の確率でそちらにアクセスした際にログインできませんでした。
対策としては全wp-config.phpの以下の箇所をread_only OFFのDBに変更しました。
例)
/** データベースのホスト名 */
define( 'DB_HOST', '192.168.1.10' );