プロが教えるわが家の防犯対策術!

xserverのcronでphpファイルを実行したいです。
プログラムはメールを送信するものなのですが
cromの設定画面で
/usr/bin/php5.6 /home/サーバーID/ドメイン/public_html/aaa/test.php
と設定しています。
プログラムは呼び出されているようですが、そのなかで下記のように記述しています
include_once("../common/common.php");
「aaa」フォルダと「common」は同一階層です。

test.phpを直接ブラウザのアドレスで呼び出すと正常にメールが送信されます。

ですがcron実行だと下記のようなエラーになってしまいます。
(cronの結果がメール送信されるように設定してあります)
PHP Warning: include_once(../common/common.php): failed to open stream: No such file or directory in /home/サーバーID/ドメイン/public_html/aaa/test.php on line 2

include_once設定がいけないのでしょうか?

A 回答 (1件)

理由は、Webから実行する場合と、cronから実行する場合では、実行時のカレントディレクトリが異なるからです。



test.php に下記を追加するか、

chdir(dirname(__FILE__));

下記に書き換えれば動作します。

include_once(dirname(__FILE__) . "/../common/common.php");
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
記述を変更したら無事動きました。感謝!!

お礼日時:2017/09/28 09:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!