feb 17 2009
WordPress HTTP kald og firewalls
Jeg har haft en masse bøvl med WordPress MU efter opgradering til version 2.7 på Horsens kommunes bibliotekers website, og har brugt en masse tid på at finde fejlen. Symptomerne var et enormt langsomt site, hvor det tog 1,5 minut eller mere at loade hver enkelt side, både i front– og back end. Efter at have loadet længe, indlæste siden dernæst på én gang. Det lykkedes til sidst at finde en løsning, men problemerne skyldtes ikke nødvendigvis en fejl.
Horsens kommunes bibliotekers website står placeret bag kommunens firewall. Det er jo glimrende, for så vidt sikringen af serveren. Det viser sig dog at give visse problemer ift. WordPress.
WordPress har nemlig brug for at lave en række HTTP kald til sig selv for at kunne udføre en række funktioner, bl.a. cron-jobs, pinging af andre sites, plugin updates og –installation, core upgrades m.m. Men disse HTTP kald kan ikke komme igennem firewall’en og står derfor og laver time out, hvilket får sitet til at hænge i op til adskillige minutter.
Løsningen er at disable WordPress eksterne HTTP kald. Det gøres i filen /wp-includes/http.php
Omkring linie 210 finder man følgende:
function request( $url, $args = array() ) {
global $wp_version;Dette ændres til:
function request( $url, $args = array() ) {
return;
global $wp_version;Denne løsning bør dog nok være midlertidig, da problemet reelt ligger et andet sted, nemlig i opsætningen af firewall’en. Jeg har ikke meget erfaring med firewalls, så hvis du har en ide, der kan løse problemet rigtigt, uden at gå alt for meget på kompromis med sikkerheden, vil jeg meget gerne høre om det.

