Readiness check failure in Magento 2

Readiness Check Failure in Magento 2
Readiness Check Failure in Magento 2

Come si può evincere dall’errore readiness check failure il cron risulta non essere configurato correttamente. Ciò comporta che Magento non è in grado di rilevare la versione di PHP e la compatibilità dei vari pacchetti indicati nel file composer.josn. Di seguito tutti gli step da seguire per risolvere l’errore.

Cron failure

Installare il cron di Magento

php bin/magento cron:install

Verificare che il cron sia configurato correttamente

crontab -l

Il risultato sarà simile a questo:

#~ MAGENTO START
* * * * * /usr/bin/php /home/user/public_html/bin/magento cron:run | grep -v Ran jobs by schedule >> /home/user/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php /home/user/public_html/update/cron.php >> /home/user/public_html/var/log/update.cron.log
* * * * * /usr/bin/php /home/user/public_html/bin/magento setup:cron:run >> /home/user/public_html/var/log/setup.cron.log
#~ MAGENTO END

Adesso sarà necessario forzare l’esecuzione del cron:

php bin/magento cron:run
php update/cron.php
php bin/magento setup:cron:run

Nel caso in cui l’errore persiste eliminare i seguenti file:

.setup_cronjob_status
.update_cronjob_status

All’interno della cartella:

public_html/var/

Dependency check

Un altro problema può essere dovuto al conflitto con le dipendenze che nella maggior parte dei casi è causato da un’estensione di terze parti oppure da alcuni vecchi componenti di Magento 2.

La soluzione potrebbe essere quindi quella di rimuovere il tag di sviluppo “require-dev” da composer.json:

"require-dev": {
        "allure-framework/allure-phpunit": "~1.2.0",
        "friendsofphp/php-cs-fixer": "~2.13.0",
        "lusitanian/oauth": "~0.8.10",
        "magento/magento-coding-standard": "~1.0.0",
        "magento/magento2-functional-testing-framework": "~2.3.14",
        "pdepend/pdepend": "2.5.2",
        "phpmd/phpmd": "@stable",
        "phpunit/phpunit": "~6.5.0",
        "sebastian/phpcpd": "~3.0.0",
        "squizlabs/php_codesniffer": "3.3.1"
    },

Memory limit

Il readiness check controlla di avere almeno 1 GB di memoria riservata ai processi PHP ( memory_limit ) che nella maggior parte dei casi dovrebbe essere sufficiente per installare Magento 2 e il suo corretto funzionamento. Tuttavia, si consiglia almeno 2 GB per il debug.

File permission

Le directory nel file system Magento devono essere scrivibili dall’utente di sistema. Se si dispone dell’accesso al servizio SSH, puoi lanciare i seguenti comandi per impostare permessi e proprietà corretti:

find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var vendor pub/static pub/media app/etc -type d -exec chmod g+w {} + && chmod u+x bin/magento

Versione PHP

Magento 2 necessità di PHP almeno 7.1.3 mentre l’ultima versione ( 2.3.1 ) è certificato per essere utilizzato con PHP 7.2.11.

E’ necessario inoltre fare molta attenzione ai moduli ed estensioni di terze parti, le stesse devono essere compatibili con PHP 7.1.3 o versione successiva.

Bypass readiness check

Nel caso in cui il problema persiste è possibile disattivare readiness check modificando il seguente script:

Magento/Setup/Controller/Environment.php

sostituendo

$setupCheck = $this->cronScriptReadinessCheck->checkSetup();
$updaterCheck = $this->cronScriptReadinessCheck->checkUpdater();

con

$setupCheck = ['success' => 1];
$updaterCheck = ['success' => 1];
Readiness check failure in Magento 2
Readiness check failure in Magento 2

Mi chiamo Ostap Mykhaylyak

Avatar for Ostap MykhaylyakSono un Web Developer e blogger per passione. Sul mio sito puoi trovare guide per WordPress, Linux e Magento. Ho una fissa per l'ottimizzazione pertanto non troverai mai una guida su come installare un plugin ( a parte i rari casi ).