繁体   English   中英

Cron Job PHP脚本失败,但脚本将通过CLI或通过浏览器运行

[英]Cron Job PHP Script Fails but Script will run via CLI or through browser

我有几个我要设置的php脚本(最近移到新服务器上),它们将从命令行运行并通过浏览器运行,但是只有一个会通过cron运行,如果文件是,则另一个似乎存在权限问题。设置为644我从cron收到此消息:/ bin / sh:/home/xyz/public_html/scripts/update-script.php:权限被拒绝

如果我将权限设置为777,则会收到以下消息:

/home/xyz/public_html/scripts/update-script.php:第1行:?php:没有此类文件或目录

/home/xyz/public_html/scripts/update-script.php:第2行:意外令牌'“ includes / clsDatabase-list.php”'附近的语法错误

/home/xyz/public_html/scripts/update-script.php:第2行:`require_once(“ includes / clsDatabase-list.php”);'

但是该脚本是从命令行通过浏览器运行的,而且我还有另一个与此脚本完全相同的脚本(第1行中的相同include的调用位于完全相同的文件夹中),它将通过cron运行! 所以我知道我在Cpanel中设置的路径和cron工作是正确的。 如果我在命令行中复制工作版本,则复制的版本也无法通过cron运行。 谢谢!

您需要在文件中添加shebang才能直接执行:

#!/usr/bin/env php
<?php
//...

另一个选择是在您的cronjob中这样称呼它:

* * * * * php /home/xyz/public_html/scripts/update-script.php

当然,除非您希望每分钟运行一次,否则您将用实际的crontab数据替换* * * * *

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM