
たとえば、次の場所に PHP ファイルがあるとします。
/data/web/process.php
このファイルは公開されていません (そのフォルダーでは仮想ホストは実行されていませんが、Apache はインストールされています)。このファイルを毎日 1 分ごとに実行する必要があります。
crontab を で開くことができることはわかっていますcrontab -e
が、必要な操作を実行するためにファイルに正確に何を書き込む必要があるのかわかりません。
何か助けていただけますか?
答え1
実行し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 ファイルを編集できないようにし、そのファイルを注意深く確認してください。このファイルはルート所有にして、権限を 644 にします。Apache ユーザーが所有して書き込み可能にしないでください。
答え2
次のことを試してください。
/path/to/php -f /data/web/process.php