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

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

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). Preciso executar esse arquivo a cada minuto, todos os dias.

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

Alguma ajuda, por favor?

Responder1

execute crontab -ee adicione a linha:

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

Antes de fazer isso, certifique-se de que /usr/bin/php -f /data/web/process.phpfaz o que deseja. Observe também que o cron irá executá-lo como o mesmo usuário que chamou crontab -e, portanto, se você executá-lo como usuário rimmer, ele será executado como rimmer; se for root, ele será executado como root.

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

sudo -u www-data crontab -e

assumindo que www-data é 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-o cuidadosamente. Eu tornaria esse arquivo de propriedade raiz e com permissão 644. Não torne o apache de propriedade do usuário e gravável.

Responder2

Experimente o seguinte:

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

informação relacionada