3

これを、毎日 30 秒以上実行される cron に書き直すにはどうすればよいですか? .htaccessまた、ディレクトリ内のorphp.iniファイルを編集cron.phpして何かを言う必要がありますか? ブラウザ上では、30 秒以上問題なく動作します。シェル上でも問題なく動作します。しかし、cron 設定タスクとして、30 秒後に終了します。私は 1and1 共​​有ホスティングを利用しています。

0 12 * * * php5 /this/is/the/file/cron.php
4

6 に答える 6

3

スクリプトを終了させる可能性のあるものがいくつかあります。1つは、php.iniファイルで設定された最大実行時間である可能性があります。その場合は、スクリプトでそれをオーバーライドできますset_time_limit(0);。ここで、ゼロは制限がないことを意味し、ゼロより大きい数値は、スクリプトが終了するまでの実行を許可する秒数です。この時間には、ブラウザがリクエストを行うのにかかる時間は含まれていないため、ファイルのアップロード時間はここではカウントされないことに注意してください。

共有ホスティング環境(Dreamhostなど)を使用している場合は、設定された制限時間後にPHPプロセスを強制終了するプロセスウォッチがあります。これらを回避することはできません。ホスティングプロバイダーに連絡して、スクリプトをより長く実行するためのアクセス権を取得するために何をする必要があるかを確認する必要があります(Dreamhostの場合、PSサービスを提供してほしいとのことです)。

于 2009-11-07T18:12:56.520 に答える
2

次の構文を使用して、php を開始します。

php -c /path/to/another/php.ini /this/is/the/file/cron.php

次に、別のファイルで別のタイムアウト (またはタイムアウトなし) を指定できphp.iniます。

于 2009-11-07T17:51:27.687 に答える
2
ini_set('max_execution_time', 600);

これを php ファイルの先頭に追加すると、600 秒間実行されます。それ以上はお勧めしませんが、必要に応じて試すことができます。

于 2010-11-30T12:19:39.613 に答える
2

PHP CLI を使用する場合は、max_execution_time を高く設定する必要はありません。

「max_execution_time」の CLI SAPI デフォルト値は無制限に設定されています。

http://nl3.php.net/manual/en/features.commandline.differences.php

于 2020-10-09T00:32:24.307 に答える
0

私はただ使うだろうwget http://path.to.myscript.php

30 秒後に終了する場合は、スクリプトを 30 秒以上実行できるように設定max_execution_time = 60する必要がある場合があります。php.ini

于 2009-11-07T17:52:53.783 に答える
-1

使用することもできますini_set('max_execution_time', 60)

ただし、マニュアル ページに記載されているように、場合によっては (つまり、セーフ モードで実行している場合)、これはまったく効果がありません: http://uk.php.net/manual/en/info.configuration.php#ini.max-execution -時間

また、クライアント行の​​ php.ini の最大実行値がブラウザのものと異なる可能性もあります。時々見たことがあります。

于 2009-11-07T18:45:49.247 に答える