Esegui script PHP in cron job

Nel nostro server centos6. Mi piacerebbe eseguire uno script php in cron job come utente apache ma sfortunatamente non funziona.

ecco l'edizione di crontab (crontab -uapache -e)

24 17 * * * php /opt/test.php 

ed ecco il codice sorgente del file "test.php" che funziona bene con l'utente "apache" come proprietario.

 <?php exec( 'touch /opt/test/test.txt');?> 

Provo a sostituire php con il path completo di php (/ usr / local / php / bin / php) ma non funziona

Grazie in anticipo, per favore aiutami

Attività automatizzate: Cron

Cron è un servizio di pianificazione basato sul tempo in sisthemes operativi computerizzati Linux / Unix. Il process cron viene utilizzato per pianificare i comandi da eseguire periodicamente. È ansible impostare comandi o script, che verranno eseguiti ripetutamente a un'ora prestabilita. Cron è uno degli strumenti più utili nei sisthemes operativi Linux o UNIX. Il servizio cron (demone) viene eseguito in background e controlla costantemente il file / etc / crontab , / etc / cron. / * directory. Controlla anche la directory / var / spool / cron / .

Configurazione delle attività di Cron

Nell'esempio seguente, il command crontab mostrato di seguito attiverà automaticamente le attività cron each dieci minuti:

 */10 * * * * /usr/bin/php /opt/test.php 

Nell'esempio sopra, * / 10 * * * * rappresenta quando deve essere eseguita l'attività. La prima cifra rappresenta i minuti – in questo caso, each "dieci" minuti. Le altre cifre rappresentano rispettivamente l' ora , il giorno , il mese e il giorno della settimana .

* è un carattere jolly, che significa "each volta" .

Inizia con la ricerca del tuo binario PHP digitando la row di command:

 whereis php 

L'output dovrebbe essere qualcosa del tipo:

php: / usr / bin / php /etc/php.ini /etc/php.d / usr / lib64 / php / usr / include / php / usr / share / php /usr/share/man/man1/php.1 .gz

Specificare correttamente il path completo nel command.

Digitare il seguente command per inserire cronjob:

 crontab -e 

Per vedere cosa hai in crontab .

MODIFICA 1:

Per uscire da Vim Editor senza salvare basta click:

 Shift+: 

E quindi digita q!

Ho avuto lo stesso problema … ho dovuto eseguirlo come utente.

 00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php 

Potrebbe essere necessario eseguire il cron job come utente con le autorizzazioni per eseguire lo script PHP. Prova a eseguire il cron job come root, usando il command runuser ( man runuser ). Oppure crea un sistema crontable ed esegui lo script PHP come utente autorizzato, come descritto da @Philip.

Fornisco una risposta dettagliata su come utilizzare cron in questo post StackOverflow.

Come scrivere un cron che eseguirà uno script each giorno a mezzanotte?