ブログを書いていて、最近気がついたことがある。
なんと、デイリーの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の権限で
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での名前解決が出来れば、この問題も解決すると思った。
余談だが、この手のサービスは、運用管理なども考えて、ローカルとグローバルはハイブリッドで構築するのが当たり前と思っていたんで、少し不満は残ります。
対応方法
vi /etc/hosts
%ローカルIP wordpress.ideacompo.com
を追記するだけ。
・・・すると・・・見事に予約アップ出来ました。
サービスのあり方を改めて、勉強させられました。
以後の開発に役立てましょう。
追記
その後、bindなどで、インフラ構成が変わった際に、以下の対応も必要になったので、必要な方のみ参考までにどうぞ
nameserver 127.0.1.1
# ↓↓↓↓↓
#nameserver 127.0.1.1
nameserver 127.0.0.1