我花了一整天的时间寻找这种特定情况的解决方案(在Stack Overflow和Googs上),所以如果已经在Stack Overflow上,我会道歉。
我正在尝试通过命令行在AWS中设置一个相当简单的cron作业:
* * * * * /usr/bin/php /opt/app/current/record_user_login.php
cron作业成功触发并能够触及有问题的文件(它正在达到正确的环境。)但是,我一直收到错误:
"Could not open input file"
我已经:
这些解决方案似乎都不起作用。由于一个未知的原因,我无法编辑rsyslog.conf来打开cronlog,所以我没有任何数据。
record_user_login的内容是:
<?
include("connect_to_mysql.php");
//Logged in in 1 week
$current_date = date('Y-m-j H:i:s', strtotime("-1 weeks"));
$query = "SELECT DISTINCT user_id FROM users_login_history WHERE sign_in_time > '$current_date'";
$result = mysql_query($query) or die(mysql_error());
$i = 0;
while($row = mysql_fetch_array($result)){
$i++;
}
$query = "INSERT INTO sqm_data (feature, action) VALUES ('user login', $i)";
if(!mysql_query($query)) {
die('Error: ' . mysql_error());
}
?>
有什么想法吗?
答案 0 :(得分:11)
这在游戏中是荒谬的,但我确实找到了解决方案。发生的事情是:
我最初在Windows记事本中键入了cron命令并上传了它们。显然正在发生的事情是回车(“/ r”,IIRC)被插入,我不知道(和vim,当我从putty查看文件时。)一位朋友通过一种方法我没有删除那些回车回想/不幸的是,并没有太顺利地关注,但在回归被删除后,一切都奏效了。
答案 1 :(得分:3)
试试这个:
* * * * * cd /var/www/html/cron/; /usr/bin/php /var/www/html/cron/filename.php -q -f
答案 2 :(得分:0)
* * * * * /usr/bin/php -q /opt/app/current/record_user_login.php
尝试添加-q标志。此外,如果您尚未登录输出,可能会有所帮助。
你确定你的PHP路径是正确的吗?我见过这样的例子:
* * * * * php -q /opt/app/current/record_user_login.php
你可能想尝试一下。
答案 3 :(得分:0)
在cpanel中,这可以解决我的问题
php -q -f /home/skat_2347/public_html/cron.php /home/skat_2347/public_html/