0

cronで実行している次のコードがあります。

<?php
    $_SERVER['DOCUMENT_ROOT'] = dirname(__FILE__);
    $directory = $_SERVER["DOCUMENT_ROOT"]."/cron/";
    $file = "register_warranty_". date("dMY") .".csv";
    $filepath = $directory.$file;

    if(!file_exists($filepath)) 
    {
        $fp = fopen($filepath, "w+");
        fwrite($fp, "Title, Initials, Surname, HomeTel, Mobile, HouseNumber, Address, Address2, Town, Postcode, NewlyBuiltHome, InstallationDate, Houseowner, InstallersName, InstallersEmail, InstallersMobile, InstallersGasSafeNumber, BusinessName, BusinessAddress, BusinessAddress2, BusinessTown, BusinessRegion, BusinessPostcode, BusinessGasSafeNumber, BusinessEmail, SuppliersName, Model, serial, MaintenanceContract, ExpiryDate, Donotwishtobecontactedviapost, Donotwishtobecontactedviatelephone, Donotwishtobecontactedviaemail, Donotwishtobecontactedviasms\n");
        fclose($fp);
    }

?>

cron の実行時に受け取る Cron メールでは、次のエラーが表示されます。

1 行目: ?php: そのようなファイルやディレクトリはありません
3 行目: 予期しないトークンの近くに構文エラーがあります$_SERVER['DOCUMENT_ROOT'] = dirname( FILE );'('
line 3:

私は明らかに間違ったことをしていますか、私は Cron 作業の経験が最も豊富ではありません。

4

2 に答える 2

1

次の 2 つのいずれかを行うことができます。

  1. 次のように PHP スクリプトを実行しますcrontab

    /usr/bin/php -q script.php

  2. PHP スクリプトの先頭にシバン行を追加します。

    #!/usr/bin/php -q

    そして、次のようにスクリプトに実行権限を与えます。

    chmod +x script.php

于 2012-10-31T10:23:00.837 に答える
0

cronjobのファイル名の前にphpコマンドを追加するのを忘れたと思います。

php myscript.php

于 2012-10-31T10:16:43.023 に答える