Ciao,
ho un problema con il Cron di magento: ho provato tutte le configurazioni possibili ma non parte lo schedulatore, ne a mano ne in modo automatico
Ho usato come provider "Register" con piattaforma Linux Advanced, il che mi permette di gestire i Cron tramite Cpanel.
Ho impostato i parametri di lancio ad 1 minuto(perchè alcune estensioni installate necessitano il run ogni minuto) del Cron di Cpanel
Poi ho impostato le opzioni di Magento(ver. 1.9.2.3) in questo modo:
Il problema è che i job non sono schedulati, non partono nemmeno quando li forzo.
Ho installato inoltre AOE_SCheduler per aiutarmi a capire il problema: da li riesco a vedere che i job non solo non partono quando gli invio il comando forzato di avvio "Generate schedule" , ma nemmeno in modo automatico.
Ho controllato i permessi del file Cron.php e sono 777, quindi dovrebbe andar tutto bene.
non so piu cosa cercare. Ho provato anche ad abilitare il debug html e lanciare il cron da sito(con www.miosito.com/cron.php) ma appare schermata bianca e se vedo nella source della pagina non trovo nulla.
Seguo passo passo i tutorial ma i job non partono. e non riesco a capire il perche.
Ho anche provato ad utilizzare la SSH ed inviare i comandi che mi propone il modulo AOE_Scheduler che sono i seguenti:
sudo crontab -u pw1ltff4 -e
* * * * * ! test -e /home/pw1ltff4/public_html/shop/maintenance.flag && /bin/bash /home/pw1ltff4/public_html/shop/scheduler_cron.sh --mode always
* * * * * ! test -e /home/pw1ltff4/public_html/shop/maintenance.flag && /bin/bash /home/pw1ltff4/public_html/shop/scheduler_cron.sh --mode default
ma quando li eseguo, la SSH mi risponde che non conosce il comando SUDO.
mi aiutate almeno a capire dove posso leggere e imparare a far funzionare un semplice cron?
Solved! Go to Solution.
Sembra che io abbia risolto, almeno le email hanno ripreso ad arrivare.
Ho modificato il crontab in questo modo:
SHELL="/bin/sh" */5 * * * * echo "`date` heartbeat" > /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log */5 * * * * /bin/sh /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.sh ###*/5 * * * * /usr/local/bin/php -f /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php > /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log 2>&1 */5 * * * * php /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php >> /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log
e inserito in cron.php il codice:
$isShellDisabled = true;
dopo la riga:
$isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;
Ciao,
ho il tuo stesso problema (stesso provider con stessa soluzione) che non sono ancora riuscito a risolvere.
Nel mio caso i jobs lanciati manualmente funzionano (le email in coda vengono spedite), uso i seguenti comandi in crontab:
SHELL="/bin/bash" */5 * * * * /bin/sh /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.sh */5 * * * * /usr/local/bin/php -f /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php > /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log 2>&1
Hai più risolto?
Grazie
potrebbe forse essere un problema di assegnazione dell'utente o del gruppo che non possiede i permessi corretti. Hai provato a verificare che sia tutto ok anche da quel punto di vista?
Altrimenti potresti anche verificare se il tipo di hosting/server non richieda un diverso metodo per la chiamata. Prova anche a sentire l'assistenza dell'hosting a riguardo.
Ciao Black Cat,
l'utente è lo stesso utilizzato dalla piattaforma e i comandi lanciati via shell funzionano senza problemi.
Ho aggiunto un hartbeat per verificare l'esecuzione del cron
SHELL="/bin/sh" */5 * * * * /bin/sh /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.sh ###*/5 * * * * /usr/local/bin/php -f /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php > /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log 2>&1 */5 * * * * /usr/local/bin/php /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php >> /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log */5 * * * * echo "`date` heartbeat" >> /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log
e sembra funzionare
...
Tue Jan 3 09:05:01 CET 2017 heartbeat Tue Jan 3 09:10:01 CET 2017 heartbeat Tue Jan 3 09:15:01 CET 2017 heartbeat Tue Jan 3 09:20:01 CET 2017 heartbeat Tue Jan 3 09:25:01 CET 2017 heartbeat
A questo punto mi viene il dubbio che sia il php richiamato, anche se comunque il job viene eseguito lanciato manualmente
yyyyy@xxxxx [~/public_html/ecomm]$ which php /usr/local/bin/php yyyyy@xxxxx [~/public_html/ecomm]$ php --version PHP 5.6.28 (cli) (built: Nov 10 2016 18:08:54) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologie
Sembra che io abbia risolto, almeno le email hanno ripreso ad arrivare.
Ho modificato il crontab in questo modo:
SHELL="/bin/sh" */5 * * * * echo "`date` heartbeat" > /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log */5 * * * * /bin/sh /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.sh ###*/5 * * * * /usr/local/bin/php -f /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php > /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log 2>&1 */5 * * * * php /home/(rimosso_per_sicurezza)/public_html/ecomm/cron.php >> /home/(rimosso_per_sicurezza)/public_html/ecomm/var/log/cron.php.log
e inserito in cron.php il codice:
$isShellDisabled = true;
dopo la riga:
$isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;