Magento cron.php no hace nada después de que se ejecuta

10

Mi cron de Magento funciona normalmente hace unos meses. Pero recientemente, de repente dejó de generar horarios. El comando cron funciona bien en mi servidor de alojamiento. Es Magento ver 1.8.0.0.

Estos son los que he probado:

  1. Intento ejecutar cron.php en el navegador, y no genera una programación en la tabla cron_schedule.

  2. Instale la extensión AOE Scheduler, con la esperanza de que pueda resolver el problema. Puedo generar una programación usando esta extensión, pero Magento cron no puede ejecutar la programación cron.

  3. Instale Magento ver 1.8.0.0 nuevo en el servidor de alojamiento y luego ejecute cron.php en el navegador, la tabla cron_schedule aún está vacía.

  4. Instale Magento ver 1.8.0.0 nuevo en mi localhost, y luego ejecute cron.php en el navegador, se genera el horario. Así que trato de subirlo al servidor de alojamiento. Borro el caché de Magento, luego ejecuto cron.php en el navegador, sorprendentemente no sucede nada en la tabla cron_schedule. Pero funciona bien en mi localhost.

Tengo otro sitio de Magento ver 1.7.0.2 en el mismo servidor de alojamiento, el cron funciona bien.

Todavía no sé cuál es la causa de este problema, así que lo publico aquí. Esperando que alguien tenga el mismo problema y comparta la solución.

Wakanina
fuente
2
Me encontré con un problema similar hace varios meses. El intérprete php de la línea de comandos tenía una configuración php.ini separada y el límite de memoria estaba demasiado bajo para que los trabajos cron fallaran. No estoy seguro si este es tu problema.
Fiasco Labs
Memory_limit es 256M y este es el comando que uso /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1.
Wakanina

Respuestas:

24

Encontré la solución en los foros (el enlace ya no está en línea )

Anteriormente intenté instalar Magento 1.7.0.2 en mi servidor de alojamiento, y el cron funciona bien. Entonces asumí que mi hosting no puede ejecutar Magento 1.8.0.0 cron, así que estaba planeado degradar mi sitio de Magento a 1.7.0.2. Pero antes de degradar mi sitio, encontré la solución en el enlace de arriba.

  • Editar archivo cron.php
  • Después de $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; alrededor del # 47 agregue esta línea de código

    $isShellDisabled = true;

Y ahora My Magento 1.8.0.0 cron funciona perfectamente.

Wakanina
fuente
En mi caso, estoy trabajando en un servidor que no me ha dado más que dolores de cabeza debido a la configuración ambigua. Esta era la única forma en que podía ejecutar cron.
pspahn
Está funcionando para wget, pero mejor cambie el nombre a eq cron89128923489.php;)
user956584
Esto funcionó para mí también. Probablemente algo que ver con restricciones de acceso de shell.
Daniel West
Link ha MageBayVaporated ...
Fiasco Labs
Le expliqué por qué funciona esta solución y cuál es la solución real aquí: magento.stackexchange.com/questions/137130/…
Fabian Schmengler
11

La solución dada por Wakanina funcionó para mí. Sin embargo, cambiar el archivo cron.php era algo inaceptable en nuestra política. Lo extraño es que he implementado mi sitio en dos servidores (con el mismo sistema operativo, versión de PHP) y en un servidor ejecuta tareas cron cuando se ejecuta cron.php y en otro servidor no sucede nada.

Así que tuve que probar una solución mejor que mantendrá la prueba de actualización de mi sitio.

En lugar de ejecutar cron.php, ahora estoy ejecutoras cron.sh a través crontab -eya que Linux se utiliza como sistema operativo del servidor.

Rakesh Shewale
fuente
2
Asi es como debería de hacerse.
Robbie Averill
2

El problema magento_root/cron.phpno se estableció en el servidor crontab. Necesitamos agregar este archivo en crontab para que funcione de la siguiente manera.

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

Debe haber una entrada para el archivo magento_root / cron.php. Si no es así, debemos agregar este archivo porque este es responsable de iniciar sus trabajos de Magento Cron. Entonces necesitamos editar el Crontab de la siguiente manera.

# crontab -e

Agregue la siguiente declaración en el archivo y cierre después de guardarla.

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

Para más información, visite este enlace.

dicho
fuente