Facebook SDK を使用して、自分の Facebook ページにテスト ウォール投稿を投稿しています。ブラウザでスクリプトを実行すると問題なく動作しますが、ターミナルから実行すると以下のようなエラーが表示されます。何が問題なのかわかりません。助けてください。6時間ごとにphp CRONスクリプトを使用してFacebookページに投稿したいと思います。
未定義のインデックス: Facebook/src/base_facebook.php の HTTP_HOST エラー
cron は、Apache のモジュールとは異なり、PHP を実行するため、多くの環境変数はサーバーによって設定されません。cron から実行する場合、PHP スクリプトは GCI スクリプト、より正確にはその CLI (コマンド ライン インターフェイス - php-cli) に似ています。ご想像のとおり、Web サーバーも HTTP_HOST もありません。
PS: コマンド ライン引数 (環境変数) としてデータ (URL、ホスト名、または任意のもの) を PHP に転送できます:コマンド ラインの使用法
添加:
$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
これに対する可能な解決策は、 with の代わりにa を使用してスクリプトを実行することphp scriptname
です。