Como definir CRON para executar um arquivo php fora de uma pasta html pública?

2

Eu tenho um arquivo php localizado em, digamos, por exemplo:

/data/web/process.php

Este arquivo não está disponível publicamente (nenhum host virtual está sendo executado nessa pasta, mas o apache está instalado). Eu preciso executar este arquivo a cada minuto todos os dias.

Eu sei que posso abrir crontab com crontab -e, mas não tenho certeza o que exatamente devo escrever no arquivo para que o que eu preciso fazer funciona.

Qualquer ajuda, por favor?

Richard Rodriguez
fonte

Respostas:

0

executar crontab -ee adicionar linha:

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

Antes de fazer isso, certifique-se de fazer /usr/bin/php -f /data/web/process.phpo que quiser. Note também que o cron irá executá-lo como o mesmo usuário que chamou crontab -e, então, se você executá-lo como usuário rimmer, ele será executado como rimmer, se como root, ele será executado como root.

se você quer que ele seja executado como usuário do apache, faça:

sudo -u www-data crontab -e

assumindo www-data é o seu usuário apache. Você também pode criar um arquivo /etc/cron.d/my-php-job.

Certifique-se de que nenhum bandido possa editar o arquivo /data/web/process.php e revise esse arquivo com cuidado. Eu faria com que esse arquivo fosse root e com a permissão 644. Não faça com que o usuário do apache seja proprietário e gravável.

Michał Šrajer
fonte
1

Tente o seguinte:

/path/to/php -f /data/web/process.php

Justin Pearce
fonte