
Tengo un archivo php ubicado en, digamos, por ejemplo:
/data/web/process.php
Este archivo no está disponible públicamente (no se está ejecutando ningún host virtual en esa carpeta, pero Apache está instalado). Necesito ejecutar este archivo cada minuto todos los días.
Sé que puedo abrir crontab con crontab -e
, pero no estoy seguro de qué debo escribir exactamente en el archivo para que lo que necesito hacer funcione.
¿Alguna ayuda, por favor?
Respuesta1
ejecutar crontab -e
y agregar línea:
* * * * * /usr/bin/php -f /data/web/process.php 2>&1 >> /path/to/output/file.log
Antes de hacer eso, asegúrese de que /usr/bin/php -f /data/web/process.php
haga lo que desea. También tenga en cuenta que cron lo ejecutará como el mismo usuario que llamó crontab -e
, por lo que si lo ejecuta como usuario rimmer, se ejecutará como rimmer; si es root, se ejecutará como root.
Si desea que se ejecute como usuario de Apache, haga:
sudo -u www-data crontab -e
asumiendo que www-data es su usuario de Apache. También puedes crear un archivo /etc/cron.d/my-php-job
.
Asegúrese de que ningún tipo malo pueda editar el archivo /data/web/process.php y revíselo cuidadosamente. Haría que este archivo fuera propiedad de la raíz y tuviera el permiso 644. No haga que sea propiedad del usuario de Apache y que pueda escribirlo.
Respuesta2
Pruebe lo siguiente:
/path/to/php -f /data/web/process.php