Magento cron.php non fa nulla dopo che viene eseguito


10

Il mio cronografo Magento funziona normalmente circa qualche mese fa. Ma recentemente, improvvisamente smette di generare programma. Il comando cron stesso funziona correttamente nel mio server di hosting. È Magento versione 1.8.0.0.

Ecco cosa ho provato:

  1. Provo ad eseguire cron.php nel browser e non genera pianificazione nella tabella cron_schedule.

  2. Installa l'estensione AOE Scheduler, sperando che possa risolvere il problema. Posso generare una pianificazione usando questa estensione, ma Magento cron non può eseguire la pianificazione cron.

  3. Installa la nuova versione di Magento 1.8.0.0 nel server di hosting, quindi esegui cron.php nel browser, la tabella cron_schedule è ancora vuota.

  4. Installa la nuova versione di Magento 1.8.0.0 nel mio localhost, quindi eseguendo cron.php nel browser, genera pianificazione. Quindi provo a caricarlo sul server di hosting. Svuoto la cache di Magento, quindi eseguo cron.php nel browser, sorprendentemente non accade nulla nella tabella cron_schedule. Ma funziona bene nel mio localhost.

Ho un altro sito Magento versione 1.7.0.2 nello stesso server di hosting, il cron funziona bene.

Non so ancora quale sia la causa di questo problema, quindi lo pubblico qui. Sperando che qualcuno abbia lo stesso problema e condivida la soluzione.


2
Ho riscontrato un problema simile diversi mesi fa. L'interprete php della riga di comando aveva una configurazione php.ini separata e memory_limit era impostato su un valore troppo basso in modo che i processi cron non avessero esito positivo. Non sono sicuro se questo è il tuo problema.
Fiasco Labs,

Memory_limit è 256M e questo è il comando che uso /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1.
Wakanina,

Risposte:


24

Ho trovato la soluzione nei forum ( link non più online )

In precedenza ho provato a installare Magento 1.7.0.2 nel mio server di hosting e il cron funziona correttamente. Quindi ho pensato che il mio hosting non potesse eseguire Magento 1.8.0.0 cron, quindi avevo pianificato il downgrade del mio sito Magento alla 1.7.0.2. Ma prima di effettuare il downgrade del mio sito, ho trovato la soluzione sul link sopra.

  • Modifica il file cron.php
  • Dopo $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; circa # 47 aggiungi questa riga di codice

    $isShellDisabled = true;

E ora My Magento 1.8.0.0 cron funziona perfettamente.


Nel mio caso, sto lavorando su un server che non mi ha dato altro che mal di testa a causa della configurazione ambigua. Questo era l'unico modo per far funzionare cron.
pspahn,

Funziona per wget, ma meglio cambiare nome in eq cron89128923489.php;)
user956584

Questo ha funzionato anche per me. Probabilmente qualcosa a che fare con le restrizioni di accesso alla shell.
Daniel West,

Link ha MageBayVaporated ...
Fiasco Labs

Ho spiegato perché questa soluzione alternativa funziona e qual è la vera soluzione qui: magento.stackexchange.com/questions/137130/…
Fabian Schmengler

11

La soluzione fornita da Wakanina ha funzionato per me. Tuttavia, cambiare il file cron.php era inaccettabile nella nostra politica. La cosa strana è che ho distribuito il mio sito su due server (con lo stesso sistema operativo, versione PHP) e su un server esegue cron task quando cron.php viene eseguito e su un altro server non succede nulla.

Quindi ho dovuto provare una soluzione migliore che manterrà la prova dell'aggiornamento del mio sito.

Invece di eseguire cron.php, sto eseguendo cron.sh da crontab -equando Linux è usato come sistema operativo server.


2
Così è come dovrebbe essere fatto.
Robbie Averill,

2

Il problema non è magento_root/cron.phpstato impostato nel server crontab. Dobbiamo aggiungere questo file in crontab in modo che abbia funzionato per noi come segue.

# crontab -l (this command will list all the Cron jobs in Crontab)

Dovrebbe esserci una voce per il file magento_root / cron.php. In caso contrario, è necessario aggiungere questo file perché questo file è responsabile dell'avvio dei lavori di Magento Cron. Quindi dobbiamo modificare il Crontab come segue.

# crontab -e

Aggiungi la seguente istruzione nel file e chiudi dopo averlo salvato.

* / 5 * * * * wget -O / dev / null -q path_to_magento_root / cron.php> / dev / null

Per ulteriori informazioni, visitare questo link

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.