我已经设置了一个php文件来运行,只有echos你好。
<?php
echo hello;
?>
我的cron工作看起来像这样:
/usr/local/bin/php -f “/home/username/public_html/mls/test.php”
当我的脚本运行时,我会收到一封确认电子邮件:
Could not open input file: /home/username/public_html/mls/test.php
我不知道造成这种情况的原因。我正在使用godaddy的虚拟专用服务器并安装了cpanel x。我已经使用ssh在文件夹和文件上设置权限777,仍然无法让它运行。
任何建议都会有所帮助。感谢。
答案 0 :(得分:5)
由于某些原因,PHP无法打开该文件。尝试用“ls -la”替换/ usr / local / bin / php -f以尝试获取更多信息。记得不要引用crontab中的文件名:php -f filename.php,而不是php -f“filename.php”,除非它包含空格 - 然后最好使用单引号。
可能请尝试“ls -la / home”,“ls -la / home / username”,“ls -la~ / public_html”等等。
另外尝试追加
2>&1
到命令行,以防只有stdout邮寄给你(我真的不这么认为,但确保成本很低)。
crontab指的是/home/username/public_html/mls/test.php
- 也就是说, username 中的公共HTML目录是主目录的最常用值。
cron作业可能没有使用适当的用户和权限运行,或者它“看到”的用户实际上是虚拟用户 - 是根本没有“/ home / username” - “主目录”在其他地方,甚至可能只要cron作业运行就存在。在这种情况下,解决方案可能是指
~/public_html/mls/test.php
或者,如上所述,首先运行pwd
或ls -la
之类的命令,以确定cron作业当前工作目录的确切位置。
如果这也失败了,那么另一种解决方法可能是通过curl或lynx调用PHP HTTP处理程序:
/usr/bin/curl http://www.thishostname.com/mls/test.php
可能使用某个环境变量或curl标头或_GET选项来验证脚本作为cron作业,并避免从外部访问它。