在centos上的cron job中执行PHP

时间:2017-09-06 08:12:54

标签: php cron centos

我需要帮助我的cronjob实验,我无法完成我想要的。以下是我做的事情。

  1. /var/www/html/bob/test/index.php
  2. 中创建一个php文件
  3. 将目录和文件的权限权限设置为可执行文件(0777)
  4. 指定cronjob
  5. 我的 index.php

    <?php 
    $myfile = fopen("testfile.txt", "w");  
    ?>
    

    crontab -e 的各种测试参数无效

    */1 * * * * root /usr/bin/php /var/www/html/bob/test/index.php
    */1 * * * * root /var/www/html/bob/test/index.php
    */1 * * * * root php -q /var/www/html/bob/test/index.php
    */1 * * * * root /var/www/html/bob/test/index.php
    

    查看我的一些 / var / log / cron 我没有看到任何错误指示。

    Sep 6 15:55:01 localhost CROND[4866]: (root) CMD (root /var/www/html/bob/test/index.php)
    Sep 6 15:56:01 localhost CROND[4872]: (root) CMD (root /var/www/html/bob/test/index.php)
    Sep 6 15:57:01 localhost CROND[4878]: (root) CMD (root /var/www/html/bob/test/index.php)
    

    最后,当我通过#php /var/www/html/bob/test/index.php运行我的php时,代码执行正常并创建该文本文件。

2 个答案:

答案 0 :(得分:0)

您需要从cronjob中删除root。该日志显示它正在尝试以/var/www/html/bob/test/index.php作为参数执行名为root的程序。

相反,请使用以下内容作为您的cronjob:

*/1 * * * * /usr/bin/php /var/www/html/bob/test/index.php

This answer指出,如果您要设置要运行的cronjob的用户,则必须直接编辑/etc/crontab,而不是使用crontab -e

答案 1 :(得分:-1)

1 * * * * /usr/bin/php /var/www/html/bob/test/index.php

如果这不起作用,那么你有一个许可问题,尝试使用chown和chmod来给予正确的权限

和$ myfile = fopen(“testfile.txt”,“w”);尝试使用文件testfile.txt的绝对路径,如:

 $myfile = fopen("/home/xxxx/testfile.txt", "w");