Nefunkční cron, WordPress cURL error 7 failed to connect connection refused

Že se cURL error ve WordPress cronu netýká chybné konfigurace firewallu nebo fail2ban, lze lehce vyloučit například spuštěním aktualizace cron naplánovaných událostí pomocí wp-cli

sudo -u www-data wp cron event run --due-now --path='/var/www/domena1/'

Když wp-cli neselže no ze serveru nelze zavolat na něm hostovanou doménu

curl domena1.cz

kde toto končí obvykle hláškou

curl: (6) Could not resolve host: domena1.cz nebo cURL error 7..

nefunguje (DNS) překlad..

cURL error 7: Failed to connect: Connection refused

v překladu: chyba cURL 7: Nepodařilo se připojit: Připojení bylo odmítnuto je obvykle považována za trochu záhadnou chybu. Často se uvádí, že může souviset s konfigurací protokolu HTTPS, jako problém s omezením přístupu, problém s připojením k síti, firewallem nebo fail2ban konfigurací. U multihost linux apache či nginx hostingů je často chyba podstatně jednodušší.

K tomu aby se cURL připojil k doméně potřebuje tak jako každé volání DNS překlad. Každý WordPress cron volání „počítá“ se sólo instalací nebo vlastní multisite implementací. Neporadí si ale s VPS multihost, to jest situací kde jsou na jednom linuxovém serveru hostovány stovky WordPress instalací. Řešením je úprava každého volání cron pomocí cURL kde stačí doplnit volbu –resolve.

/etc/host

Řešením pro nižší počet hostovaných WordPress domén je zapsat každou doménu do /etc/hosts

127.0.0.1       localhost
127.0.1.1       jmeno.serveru.cz domena1.cz domena2.cz jmeno

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

1.2.3.4  jmeno.serveru.cz domena1.cz domena2.cz jmeno

Lokální DNS

Když na serveru běží vlastní DNS stačí zduplikovat A záznamy IP adresy 1.2.3.4 a přiřadit jej rovněž k IP adrese 127.0.0.1

Užitečné

Příkazy wp-cli nástavby WordPress
Debian Roundcube webmail, řešení chyby 200 SMTP

ICTIS.CZ