当文件确实存在时,为什么 crontab 会给出“没有这样的文件或目录”错误?

Dan*_*lis 5 unix php cron

在 crontab 中运行以下作业后,我在 /var/mail/username 中的错误消息中收到以下三行...

15 * * * * /Applications/MAMP/htdocs/iconimageryidx/includes/insertPropertyRESI.php
Run Code Online (Sandbox Code Playgroud)

错误:

/applications/mamp/htdocs/iconimageryidx/includes/insertpropertyRESI.php: line 1: ?php: No such file or directory
/applications/mamp/htdocs/iconimageryidx/includes/insertpropertyRESI.php: line 3: syntax error near unexpected token `'initialize.php''
/applications/mamp/htdocs/iconimageryidx/includes/insertpropertyRESI.php: line 3: `require_once('initialize.php');
Run Code Online (Sandbox Code Playgroud)

我试图执行的 PHP 脚本确实存在,而且我多次确保拼写正确。我之前在另一个脚本上运行了一个 crontab,它工作得很好……有什么想法吗?

第二个和第三个错误来自以下脚本的第 3 行(我尝试使用 crontab 运行的那个):

<?php
    require_once('initialize.php');
    require_once('insertPropertyTypes.php');

    $sDate;
    if(isset($_GET['startDate'])) {
        $sDate = $_GET['startDate'];
    } else {
        $sDate = '';
    }

    $insertResi = new InsertPropertyTypes('Listing', $sDate, 'RESI');
?>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中运行我的脚本insertPropertyRESI.php时,它运行得很好????此外, initialize.php 和 insertPropertyTypes.php 与 insertPropertyRESI.php 位于同一目录中

我在 PHP 5.3.5 中使用 MAMP

感谢您的帮助:?

fak*_*ker 11

您正在尝试执行一个没有有效shebang的脚本。
像这样添加shebang作为脚本的第一行(当然是调整路径):

#!/usr/bin/php
Run Code Online (Sandbox Code Playgroud)

或者将 crontab 条目更改为:

15 * * * * /usr/bin/php /Applications/MAMP/htdocs/iconimageryidx/includes/insertPropertyRESI.php
Run Code Online (Sandbox Code Playgroud)