0

わかりました、何時間も cron ジョブを調べ、ここのすべての投稿をチェックし、Google で調べましたが、それがどのように機能するのか理解できません。

パスを使用して cron ジョブをセットアップしました。1 * * * * /home/myuser/domains/mysite/public_html/live.phpこれも試し/home/myuser/public_html/live.php ましたが、何も機能していないようです。

php ファイル ( ) に何かを追加する必要がありますlive.phpか? それが実行する必要があるコードです。コード自体は機能します。

皆さんは私が怠け者だと思うでしょうが、私は本当にこれを理解できません.

4

3 に答える 3

2

*.phpperl などの他のスクリプト言語と同様に、実行するにはインタープリターが必要な通常のスクリプト ファイルです。したがって、コマンド ラインからスクリプトを実行する場合は、インタープリターを呼び出して、次のようにスクリプト ファイルを引数として指定します。

$ /usr/bin/php myscript.php

それだけです-実行する必要があります。

または (linux/bsd を使用している場合) PHP スクリプト ファイルの最初の行として追加します

#!/usr/bin/php -q

これは、このスクリプト ファイルのインタープリターを検索する場所をシェルに指示します。/usr/binこれはディストリビューションによって異なる場合があるため、PHP がフォルダー内にあることを確認してください。whichこれは、次のようにを使用して確認できます。

$ which php
/usr/bin/php

パスが正しい場合は、スクリプト ファイルに実行可能ビットを設定する必要があるため、「起動」を試みることができます。

chmod a+x myscript.php

これにより、他のアプリと同じように動作するようになるため、次の方法で起動できます。

/full/path/to/myscript.php

または現在のフォルダーから:

./myscript.php

以上で、そのアプローチは終わりです。実行する必要があります。

したがって、crontab 行は次のようになります (選択したアプローチによって異なります)。

1 * * * * /full/path/to/myscript.php

また

1 * * * * /usr/bin/php -q /full/path/to/myscript.php

また、時間の最初の分はゼロであるため、「1」ではなく「0」を使用する必要があります。つまり、次のようになります。

0 * * * * /usr/bin/php -q /full/path/to/myscript.php

編集

cron作業ディレクトリはユーザーのホーム ディレクトリであることに注意してください。したがって、それを考慮する必要があります。これは通常、絶対パスを使用することを意味します。または、呼び出しの前にcd <script working path> && /usr/bin/php -q /full/....

于 2012-10-16T14:42:40.957 に答える
1

コマンドラインで chmod を使用して、スクリプトを実行可能にする必要があります。さらに、次のようなものが必要です。

#!/usr/bin/php
<?php
// here comes your code
?>

これは、ファイルの実行方法をコマンド ラインに伝えるために必要です。注: これは、php バイナリが /usr/bin/php にある場合にのみ機能します。

于 2012-10-16T14:38:56.713 に答える
1

多分

1 * * * * php /home/myuser/domains/mysite/public_html/live.php
于 2012-10-16T14:37:02.993 に答える