Webbhotell: Hjälp era kunder uppgradera PHP via WordPress

WordPress har sedan en tid tillbaka ett projekt som heter Servehappy, vars syfte är att utbilda användare om nyttan med en så modern PHP-version som möjligt. En nyare version av PHP ger bättre prestanda, säkerhet och många andra fördelar (för både användare och leverantörer).

Med WordPress 5.1, som släpps den 21:a februari, får alla användare med en äldre PHP-version en varning i WordPress adminpanel. Det är en väldigt tydlig säkerhetsvarning, för alla med PHP 5 och äldre. Här är ett exempel (detta kommer även översättas till svenska):

Varningen innehåller även en länk till en sida med mer information om vikten av att uppgradera PHP.

Denna länk går dock att anpassa för enskilda webbhotell. Som webbhotell kan man definiera en egen informationssida om PHP, som en miljövariabel på servernivå. På så sätt kan man nå ut med t ex uppgraderingsinstruktioner för egna användare.

Om ni har kunder med äldre PHP-version så är detta ett gyllene tillfälle att hjälpa dem via WordPress!

Det ”enda” man som leverantör behöver göra är att definiera servervariabeln WP_UPDATE_PHP_URL. Om man kör Apache så kan man t ex göra det via mod_env-modulen i en vhost för berörda kunder.

Här framöver kommer gränsen för vilken PHP-version som får denna varning att stiga, men det börjar med PHP 5-serien för att minimera mängden support. WordPress Servehappy-projekt arbetar även vidare för att höja nivån för de PHP-versioner som stöds av WordPress med teman och tillägg.

Så håll er fortsatt uppdaterade! Läs gärna mer hos WordPress: PHP Site Health Mechanisms in 5.1

WordPress-tilläggen som ditt webbhotell fruktar

Igår kväll föreläste jag, med WordPress Stockholm hos .SE och FooCafe, om de mest resurskrävande WordPress-tilläggen, samt hur man bör installera/testa tillägg i WordPress. Min presentation var anpassad för nybörjare/medel, med några lite mer avancerade tips.

Klicka på bilden nedan för att ladda ner presentationen som en PDF (0,6MB):

WordPress-tilläggen som ditt webbhotell fruktar

Stort tack till er alla som kom och lyssnade (samt ställde frågor)!

WP Stockholm, Snabbare hemsida med WordPress

I kväll föreläste jag om prestanda och optimering av WordPress, med WordPress Stockholm hos .SE och FooCafé i Stockholm. Det var en rätt så övergripande presentation, främst anpassad för medel/nybörjare, men även innehållande lite mer avancerade tips.

Klicka på bilden nedan för att ladda ner presentationen som en PDF (0,5 MB):

Hur man får en snabbare hemsida med WordPress

Stort tack till er alla som kom och lyssnade/pratade prestanda med oss i kväll!

Bättre schemaläggning i WordPress

Om man vill schemalägga uppgifter i Unix/Linux-baserade system så använder man något som heter Cron. På samma sätt har WordPress en egen lösning för schemaläggning, som heter WP-Cron.

WP-Cron ser till att WordPress letar efter uppdateringar, publicerar schemalagda inlägg och utför diverse andra uppgifter (t ex kontrollerar trasiga länkar med Broken Link Checker).

Fördelen med WP-Cron är att det funkar överallt. Det är långt från alla webbhotell och servermiljöer som tillåter schemaläggning av uppgifter hur som helst. Nackdelen är att WP-Cron kör varje gång en sida laddas i WordPress, vilket kan orsaka onödig belastning (läs: ge en långsammare hemsida).

Det är dock enkelt att rätta och förbättra schemaläggningen i WordPress.

– Inaktivera schemaläggning via WP-Cron

Börja med att inaktivera WP-Cron, genom att lägga in följande kodrad i wp-config.php.

define('DISABLE_WP_CRON', true);

– Schemalägg via riktiga cron istället

Om du kör WordPress på en Linux-baserad server (vilket du bör göra) och har åtkomst till servern via SSH, så kan du starta crontab (en redigerare för cron) via terminalen med följande kommando.

crontab -e

När du har valt en redigerare (välj t ex ”nano”), lägg in nedanstående rad längst ner i filen.

0 * * * * cd /hemkatalog-för-min-hemsida; php -q wp-cron.php

Ersätt ”/hemkatalog-för-min-hemsida” med den fullständiga sökvägen till hemkatalogen för din hemsida, t ex /var/www/minhemsida.se (från roten). Spara och stäng till sist filen.

Därefter kör WP-Cron en gång varje heltimme, via PHP direkt på servern. Det går att köra WP-Cron med anrop mot webbplatsen t ex via wget, men då påverkas webbservern/besökare i onödan.

Att schemalägga uppgifter via cron är även möjligt att få till via kontrollpanelen hos vissa webbhotell. Om du inte känner dig bekväm med SSH/terminal, använd det istället.

Ett litet, men naggande gott, fel i PHP

Sprang på ett lagom irriterande fel i ett WordPress-tillägg under helgen som gick. Med felmeddelandet ”Cannot modify header information – headers already sent” som enligt bl a WordPress Codex, FAQ Troubleshooting betyder att det finns tecken före/efter php-taggarna.

Öppnade den berörda filen med ett flertal olika textredigerare, men lyckades inte hitta dessa tecken. Körde till slut följande kommando i en terminal:

less filnamn.php

Och såg då att filen inleddes med ”<U+FEFF>”. Vilket innebar att filen teckenkodades med UTF-8 BOM istället för enbart UTF-8. Försökte lösa det genom att skapa en ny fil, med samma innehåll, men felet kvarstod. Googlade då lite och hittade denna lösning (via en terminal):

sed -i '1s/^\xEF\xBB\xBF//' filnamn.php

Laddade upp filen, laddade om WordPress och vips så var felet borta.