Alv*_*nte 1 php cron crontab amazon-ec2 amazon-web-services
我的服务器中有一些PHP脚本用于数据库维护,需要定期执行.显然,最简单的解决方案是使用system cron安排运行.
该脚本需要从访问一些服务器变量$ _SERVER,如数据库的主机名,cron的参数,等等.
我可以从命令行运行预定的cron命令没有任何问题,一切似乎都正常工作(调用php filename.php之类的东西).但是,当从cron执行相同的命令时,脚本将失败,并且报告的错误如下所示:
PHP注意:未定义的索引:第8行的/var/app/current/app/xx/Db/ConnectionFactory.php中的RDS_DATABASE PHP
似乎从cron运行时$ _SERVER变量未正确初始化,但它可以从命令行运行.我试过用crontab -u ec2-user -e但没有运气.
我不想使用wget来运行脚本,因为它增加了一些开销,并且隐藏了从HTTP访问脚本.
有关从命令行成功访问$ _SERVER的任何提示,但从crontab运行时失败?
小智 8
有同样的问题.找到了解决方案:
echo "InstanceID: ".get_cfg_var('INSTANCE_ID')."\n";
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它在我的ec2用户上工作正常,但不是作为root cron工作.使用该函数而不是访问$ _SERVER数组解决了我的问题.