wordpressの予約投稿が失敗するので対処してみた

ブログを書いていて、最近気がついたことがある。
なんと、デイリーのPVが伸びてきた。
1ヶ月ぐらい、それまでのマンネリ投稿を思い切って、毎日投稿すると決めて、投稿数が100原稿を超えたあたりから、日に30PVぐらいのPVになってきた。
1ヶ月でいうと900PVでabout-1000PVに近づいてきた。
WordPressの予約機能を使ってみる。
このまま、投稿を安定させるために、wordpressの機能の「予約投稿」をしてみようとセットしたところ、「予約投稿の失敗」との文字・・・
linux-osなのでcronかsqlのアクセス権限なのか?・・・と思っていたが、
wordpressは「wp-cron.php」というモジュールがroot階層にあり、これがosのcronではなく、ソフトウェア独立型で実行してくれるようだ。
結果・・・
仕組みとしては、誰かが、トップページにアクセスした時がイベントになるようで、
どうやらその時にエラーが出ているようなんだが、
sshでサーバーにアクセスしてwww-dataの権限で
1 |
wget http://%domain%/wp-cron.php |
として、400エラーが返っていました。
他のサイトでの助言
バージョンアップしてみる
そのサイトは、3.9を3.9.1にアップしたところ、うまくいったそうですが、この時点で、このブログサイトは4.0でした。
眉唾だが、最新の4.1にアップしてみました。
ダメでした。変わらず、予約エラー。
さらに原因追求
他にも、wp-cron.phpのalternativeモードをtrueにする。というのもあったが、バージョンが違うのか、その設定が、見つからない。
あと、実際にcron登録して解決するというのもあったが、本末転倒なので、これは無視。
もう大体答えは見えているんだが、400エラーが返っているので、ドメインを自己解決出来ていないということでしょうね。
wordpressの仕組みは、管理画面や、ブログ表示部分まで、jsやcssモジュールをドメインから呼び出している。
このサイトは、自宅サーバーで立てており、自宅内からはローカルサーバーのipアドレスになるので、DNSでの名前解決が出来れば、この問題も解決すると思った。
余談だが、この手のサービスは、運用管理なども考えて、ローカルとグローバルはハイブリッドで構築するのが当たり前と思っていたんで、少し不満は残ります。
対応方法
1 2 |
vi /etc/hosts %ローカルIP wordpress.ideacompo.com |
を追記するだけ。
・・・すると・・・見事に予約アップ出来ました。
サービスのあり方を改めて、勉強させられました。
以後の開発に役立てましょう。
追記
その後、bindなどで、インフラ構成が変わった際に、以下の対応も必要になったので、必要な方のみ参考までにどうぞ
/etc/resolv.conf
1 2 3 4 |
nameserver 127.0.1.1 # ↓↓↓↓↓ #nameserver 127.0.1.1 nameserver 127.0.0.1 |
Pingback: kaizawa.jpのサイトヘルス不合格問題(REST API/ループバックリクエスト/imagick不足) – Smile Peace
ありがとうございます。
自宅サーバをBUSTERで最新の環境で設定しました。そうしたら、wordpressのサイトヘルスでへんてこなエラーが出て対処できずに悩んでおりました。
サーバ設定で何かが足りないと色々検索していたところ、このページにたどり着き、上記etc/hostsに設定を行ったら見事に解消しました。
感謝いたします。
ご丁寧なコメントをいただきまして、ありがとうございます。
何かしらの参考になったのであれば、幸いです。
今後とも宜しくお願いいたします。