
「Xserver」で「cron」が動かない
お客様要件で、データベースに蓄積されたデータを使ってレポートを作成する必要があり、本プログラムを作成しました。
 夜間に動作させるため、cronを使いバッチ処理で動作させようとしたところ、なぜかエラーに遭遇。サーバーは、「Xserver」を使っておりました。備忘録もかねてその解決策をついて記載いたします。
1.発生したエラー内容
require_once(): Failed opening required ‘./wp/wp-load.php’
WordPressのライブラリを呼び出す、require_once()で発生していました。
2.今回は、「Xserver」の「cron設定」から実施
いつもならば、SSH経由でcronを設定するのですが、今回は、「Xserver」のコントロールパネルの「cron設定」から設定をしていました。
 (GUI形式での設定が楽なので。)

「Xserver」の「cron設定」
ところが、上記のエラーを出力し動かない事象に遭遇
SSH経由では動いていた実績があるので、あらためてSSHからcronに登録すると、これは、問題なく動きました。
3.原因と対処
どうやら、requiredで書かれている箇所で発生しているので、相対パスがいけないのかなと思い試しに絶対パスにしたところ、エラーが発生しませんでした。
 とはいえ、全てを絶対パスに書き換えるのはナンセンスですので、該当ファイルがあるディレクトリに移動してから、プログラムを実行するようcronに設定するようにしました。
 すると、うまく動作しました。
例)cron(これを、Xserverのコントロールパネルの「cron設定」から設定しました)
| 1 | 0 2 * * * root cd /home/example/public_html/ && /usr/bin/php /home/example/public_html/example.php | 
なぜ、SSH経由だと実行可能なのか。を調べてみたのですが、結論としては、SSH経由だと実行ディレクトリが正しく認識されており、当然の事ながら正常に動作していました。
もし、cronが動かないような場合には、プログラムを疑うだけでなく、環境周りを確認する事、また、場合によってはサーバー会社のサポート窓口に問い合わせしてみるのも良いかもしれません。
以上、皆さまのお役に立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
納品後は「Webサイト運用管理サービス(保守)」を締結しますので、納品後の運用やメンテナンスなどワンステップで対応。お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!(税別)で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
 - 独自ドメイン取得 
 - サーバー開設&設定 
 - レイアウト設計 
 - レスポンシブルデザイン 
 (*1)
 - 検索エンジン最適化 
 (SEO対策)
 - 場所Maps 
 - お問い合わせフォーム 
 - SSL化 
 - 各種SNS連携 
 - 運用マニュアル 


