Magento – Cronjob / Cron.php wird nicht ausgeführt

Nach einem Wechsel von einem 1.5er Magento auf einen 1.9er Magento gab es ein Problem mit dem Cronjob. Beim 1.5er wurde er problemlos (über Jahre) durch den Server nach Aufruf der URL http://www.shopadresse.de/cron.php ausgeführt und auch der AOE Scheduler war zufrieden.

Nun wurde aber auf dem Server zu einem 1.9er Shop gewechselt und der Cronjob wurde nicht mehr ausgeführt. Die URL wurde entsprechend angepasst. Auch bei manuellem Aufruf der cron.php über den Browser passierte nichts und der AOE Scheduler sagte nur, dass keinheartbeat taskgefunden wurde.

Die Lösung war nun die cron.php im Rootverzeichnis zu öffnen und dann die Zeile

$isShellDisabled = true;

hinzuzufügen, por lo que también parece:

$disabledFuncs = explode(',', ini_get('disable_functions'));
$isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec', $disabledFuncs) : verdadero;
$isShellDisabled = true;
$isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : verdadero;

Anschließend funktionierte der Cronjob wieder einwandfrei.

Es ist jedoch auch möglich die Ausführung der cron.php durch die .htaccess zu unterbinden. Daher am besten vorher mal in diese Datei schauen, ob dort (meist am Ende) Zeilen wie z.B.

###########################################
## Deny access to cron.php
    <Files cron.php>

############################################
## uncomment next lines to enable cron access with base HTTP authorization
## http://httpd.apache.org/docs/2.2/howto/auth.html
##
## Advertencia: .htpasswd file should be placed somewhere not accessible from the web.
## This is so that folks cannot download the password file.
## Por ejemplo, if your documents are served out of /usr/local/apache/htdocs
## you might want to put the password file(s) in /usr/local/apache/.

        #AuthName "Cron auth"
        #AuthUserFile ../.htpasswd
        #AuthType basic
        #Require valid-user

############################################

        Order allow,deny
        Deny from all

    </archivos>

vorhanden sind.

Esto impide que tales peticiones para realizar la cron.php. Uno no debe necesariamente eliminarlo por completo, pero puede por su propio servidor de añadir una excepción, ya que, por ejemplo,.

    <Files RELEASE_NOTES.txt>
        order allow,deny
        Allow from HIER.DIE.SERVER.IP
        deny from all
    </archivos>

En combinación con el cambio de cron.php anteriormente, esto funcionó bastante bien.

Actualización de 18.10.2017

A partir de la versión de Apache 2.4 parece o.g. Manera de no doblar. Por lo tanto, hemos vuelto a escribir esta parte de la .htaccess de la siguiente:

###########################################
## Deny access to cron.php
<Files cron.php>

############################################
## uncomment next lines to enable cron access with base HTTP authorization
## http://httpd.apache.org/docs/2.2/howto/auth.html
##
## Advertencia: .htpasswd file should be placed somewhere not accessible from the web.
## This is so that folks cannot download the password file.
## Por ejemplo, if your documents are served out of /usr/local/apache/htdocs
## you might want to put the password file(s) in /usr/local/apache/.

#Require valid-user

############################################

    Require all denied
    Require ip Ihre.IP.Adresse.Hier

</archivos>

Esto funciona bien. Puede escribir la forma en que la dirección IP sólo parcialmente. en vez de 127.0.0.1 También podría 127.0 Escribir y luego las dos últimas áreas importarían.

Se utiliza en la versión de Magento 1.9 Comentarios? Adiciones? Notas? Con alegría!

Publicado por Covos

DESDE 2009 He estado trabajando intensamente con Magento. Empecé con la creación y el funcionamiento de las tiendas B2C. Esto se extendió a través de mi trabajo en el sector de la logística. Esto dio lugar a sistemas especializados primera B2E. Hoy trabajo del día a día con una emocionante B2C, B2B- y proyectos B2E e informes en este blog sobre los desafíos y dan consejos de expertos.

Deja un comentario

Su dirección de correo electrónico no será publicado. Los campos obligatorios están marcados *