web-dev-qa-db-ja.com

パブリックhtmlフォルダーの外でphpファイルを実行するようにCRONを設定するにはどうすればよいですか?

たとえば、次の場所にphpファイルがあります。

/data/web/process.php

このファイルは公開されていません(そのフォルダーで仮想ホストは実行されていませんが、Apacheがインストールされています)。このファイルを毎日毎分実行する必要があります。

crontab -eでcrontabを開くことができることは知っていますが、必要なことを機能させるために、ファイルに正確に何を書き込む必要があるのか​​わかりません。

何か助けてください?

2

crontab -eを実行し、次の行を追加します。

* * * * * /usr/bin/php -f /data/web/process.php 2>&1 >> /path/to/output/file.log

それを行う前に、/usr/bin/php -f /data/web/process.phpがあなたが望むことをすることを確認してください。また、cronはcrontab -eを呼び出したのと同じユーザーとして実行するため、ユーザーrimmerとして実行すると、rimmerとして実行され、rootとして実行すると、rootとして実行されることに注意してください。

apacheユーザーとして実行する場合は、次のようにします。

Sudo -u www-data crontab -e

www-dataがApacheユーザーであると仮定します。ファイル/etc/cron.d/my-php-jobを作成することもできます。

悪意のある人が/data/web/process.phpファイルを編集して、そのファイルを注意深く確認できないことを確認してください。私はこのファイルをroot所有にし、644の許可を得ます。 Apacheユーザーが所有して書き込み可能にしないでください。

0
Michał Šrajer

次のことを試してください。


/path/to/php -f /data/web/process.php
1
Justin Pearce