2016-09-27 12 views
0

私は1つのphp/htmlページと1つのPHPスクリプト以外に何も持っていない私の非常に謙虚なウェブサイトをホストするためにフリードメインを使用しています。次のように
imagechange.phpスクリプトは次のとおりです。PHP Cron-Jobsタイムアウトエラー

<?php 
unlink("images/show.png"); 
$images = glob("images/*.png"); 
copy($images[rand(0,count($images))],"images/show.png"); 
?> 

*each time it runs, it should switch show.png to a different image from the directory.

私が直接スクリプトが完璧に動作します(URLバーから)ページにアクセスするとき。つまり、画面には何も表示されませんが、イメージは実際に変化します。

私の階層はそうのようになります。 ~/public_html/imagechange.php

私は私の自由なドメインで内蔵のcronジョブのオプションを使用する場合、それは私が各5分に設定すると、それは次のコマンドを実行します:php -f /home/a3638901/public_html/imagechange.php

FTP Folder hierarchy

私はそれを何時間も走らせて、何も変わらないでしょう。私は自分自身に考えました、まあ、それはちょうど悪いホストです。 私はexternal serviceを使って同じことをすることができます。今回私は10分ごとにそれを設定し、毎回Timeout errorをプロットします。
Error log 私は本当にスクリプトやcronjobに何が問題になる可能性があるのか​​分かりません。

ガイダンスやトラブルシューティングに感謝します。ありがとうございます。

+0

代わりの画像の上に削除してコピーしようとし、その理由だけで異なるソース文字列を返しません時間の計算に基づいて?すべてのものを過剰に工夫しないでください。 – Blake

+0

@Blake(あなたが何を言おうとしているのか分かりませんが..).pngファイルの場所はフォーラムで署名として使用する必要があるためです。それが動作するには '.png' URLでなければなりません。 – Cybrus

+0

ここで間違った問題を修正しているBlakeに同意してください。しかし、ファイルをコピーするのに30秒かかることはありません - それが失敗した場合、それはずっと速く失敗するでしょう。私は "自分のフリードメインに組み込まれたcronjobのオプション"はcronではなく、これらの操作のどれがシェルから実行されているのか、またウェブ上にあるのかを指定していないと思われます。閉じるにはヴォトン。 – symcbean

答えて

1

これは、cronジョブが別のディレクトリから実行されているためです。

あなたのPHPのバージョンによっては、<?php後に新しい行を追加することができ、次のいずれか

chdir(__DIR__);

か古いバージョンのために:

chdir(dirname(__FILE__));

これは何も変わらないだろうから実行したときあなたのcronジョブが正しいディレクトリから実行されることを確認します。

ただし、一部のウェブサーバーには、サーバーで実行しているときにディレクトリを自由に変更することを許可しないセキュリティ機能があります。その場合、あなたはコマンドラインで実行している場合のみ、ディレクトリを変更することで防ぐことができ、エラーを取得します:

if (php_sapi_name() == "cli") { 
    chdir(__DIR__); 
    } 
+0

正しく使用していないかどうかわかりませんが、動作しませんでした。 新しいコード行は次のとおりです: 'chdir("/public_html ");' FTP階層:[スクリーンショット](http://image.prntscr.com/image/790ac5bb419c4a219c881a2c6bde0971.png) – Cybrus

+0

@Matijs。それはあなたのホスティングで動作するはずです – kranthi117

+0

/public_htmlは非常に間違っています。/home/a3638901/public_htmlはこのサーバで動作します。しかし、上記のコードは両方とも短く、すべてのデプロイメントで機能するので、そのコードを使用する必要があります。 – Matijs

関連する問題