• ベストアンサー

cronでPHP実行

お世話になります。 OSはクライアントの為、恐縮ながら何を使用しているか不明となっております。 PHPバージョンは5.1.6です。 cronを使用して、毎日特定の時間に、メールを配信するPHPスクリプトを実行しようと試みているのですが、エラーメールが返ってきてしまいます。 因みに、URLを直接指定して実行した場合は正常にメールが配信されます。 設定方法は、crontab -e で 0 12 * * * /usr/lib/php -q /home/hoge/public_html/mail.php と記述しております。 返ってくるエラーメールの内容は、以下の通りです。 Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/home/hoge> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=hoge> X-Cron-Env: <USER=hoge> Message-Id: <xxxxxx@xxxxxxxxxx> Date: Sun, 28 Sep 2008 12:00:01 +0900 (JST) /bin/sh: /home/hoge/public_html/mail.php: Permission denied 以上、対策方法についてご存知の方がおられましたら、ご教授よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

0 12 * * * /usr/lib/php -q /home/hoge/public_html/mail.php と書いて、 /bin/sh: /home/hoge/public_html/mail.php: Permission denied というエラーメッセージは出ません。 これは、 0 12 * * * /home/hoge/public_html/mail.php と書いたときのエラーメッセージじゃないですか? php本体のパスを確認して、 0 12 * * * phpのパス -q /home/hoge/public_html/mail.php と書くのがいいです。

ash20
質問者

お礼

ご回答ありがとうございます。 無事、解決致しました。 phpのパスは /usr/lib/php ではなく /usr/bin/php となっておりました。 早速、 0 12 * * * /usr/bin/php -q /home/hoge/public_html/mail.php と指定し直しましたところ、正常にメールが配信されました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>URLを直接指定して実行した場合は正常にメールが配信されます。 じゃ、wgetでURLを指定すればよいでしょう 場合にもよりますがspiderモードでもいけることもあります

ash20
質問者

お礼

ご回答ありがとうございます。 wgetでURLを直接指定して試してみたところ、 failed: No route to host. とエラーメールが返ってきてしまいました。

  • localica
  • ベストアンサー率52% (202/385)
回答No.1

こんにちは エラーメッセージから見ると権限が足りないようですね。 スクリプトのパーミッションを確認しては如何でしょうか。

ash20
質問者

お礼

ご回答ありがとうございます。 パーミッションを確認してみると500となっていて、実行権限が無かったため755に変更致しました。

関連するQ&A