【发布时间】:2012-09-30 20:27:46
【问题描述】:
我正在使用 Facebook SDK 在我自己的 Facebook 页面上发布一些测试墙帖子。当我在浏览器上运行脚本时它工作正常,但是当我从终端运行它时,它给了我如下错误,我不知道出了什么问题,请帮忙。我想每 6 小时使用 php CRON 脚本在我的 Facebook 页面上发布一次。
未定义索引:Facebook/src/base_facebook.php 中的 HTTP_HOST 错误
【问题讨论】:
我正在使用 Facebook SDK 在我自己的 Facebook 页面上发布一些测试墙帖子。当我在浏览器上运行脚本时它工作正常,但是当我从终端运行它时,它给了我如下错误,我不知道出了什么问题,请帮忙。我想每 6 小时使用 php CRON 脚本在我的 Facebook 页面上发布一次。
未定义索引:Facebook/src/base_facebook.php 中的 HTTP_HOST 错误
【问题讨论】:
cron 执行 PHP 不像 apache 的模块,所以很多环境变量不是服务器设置的。从 cron 执行时,您的 PHP 脚本就像 GCI 之一,更准确地说是它的 CLI(命令行界面 - php-cli)。所以你可以想象,没有 Web 服务器,也没有 HTTP_HOST。
PS:您可以将数据(url、主机名或任何您喜欢的)作为命令行参数(环境变量)传输到 PHP:Command line usage
加法:
$php -f cronjob.php HTTP_HOST=www.mysite.com #example
<?php
// cronjob.php
$host = $_GET['HTTP_HOST']; // Get the host via GET params
?>
【讨论】:
如果您从终端或 cron 作业运行脚本,则没有 HTTP 环境。
一个可能的解决方案是使用wget http://.../parameters 而不是php scriptname 运行脚本。
【讨论】: