1

私はPHPファイルで次の標準のSendgrid WebAPIコードを使用しています。これは、WebブラウザーとCron wgetを使用してアクセスすると、電子メールを正常に送信します。しかし、Cron php で実行しようとすると、うまくいきません。サンプルの SendGrid コードは次のとおりです。

$url = 'http://sendgrid.com/';
$user = 'USERNAME';
$pass = 'PASSWORD'; 

$params = array(
    'api_user'  => $user,
    'api_key'   => $pass,
    'to'        => 'example3@sendgrid.com',
    'subject'   => 'testing from curl',
    'html'      => 'testing body',
    'text'      => 'testing body',
    'from'      => 'example@sendgrid.com',
  );


$request =  $url.'api/mail.send.json';

// Generate curl request
$session = curl_init($request);
// Tell curl to use HTTP POST
curl_setopt ($session, CURLOPT_POST, true);
// Tell curl that this is the body of the POST
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Tell curl not to return headers, but do return the response
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

// obtain response
$response = curl_exec($session);
curl_close($session);

// print everything out
print_r($response);

動作するcronは次のとおりです。

*/5 * * * * root /usr/bin/wget -O /dev/null "http://www.mysite.com/directory/test.php"

これが私が欲しいcronですが、動作しません:

*/5 * * * * /usr/bin/php /var/www/html/directory/test.php

非常に混乱しています...これについて何か助けていただければ幸いです!

4

1 に答える 1

1

通常、コマンド ライン (または cron ジョブ) から実行できる php スクリプトを次のように記述します。

#!/usr/bin/php
<?php

...


?>

/usr/bin/php が php 実行可能ファイルへのパスであることを確認する必要があります。「whereis php」または「which php」と入力して検索します

私の推測では、それがスクリプトが実行されていない理由です。

于 2012-04-06T00:40:50.073 に答える