En smygtitt på WordPress 3.2

Idag släpptes den första betan av WordPress 3.2. Bland nyheterna märks bl a förbättrad prestanda, lite snyggare gränssnitt, ett fullskärmsläge när man skriver inlägg och ett nytt standardtema. Här är några skärmbilder:

Stiligt och rent i wp-admin

Fullskärm med WordPress

Jag har lattjat runt med WordPress 3.2 en knapp timme och ja, visst känns det lite rappare. Det nya standardtemat ger jag däremot inte mycket för (än). Det känns alldeles på tok för luftigt och stort. Att sidhuvudet tar upp halva skärmen från början är inte ok.

Testa gärna WordPress 3.2, med det nya temat, på Letsbuyshit.com.

Vill du även köra det på din egen webbplats så kan du göra det med tillägget WordPress Beta Tester (installera, aktivera, välj ”Verktyg” > ”Beta Testing” och ”Bleeding edge nightlies”). Notera dock att det är en tidig beta, med allt vad det innebär.

WordPress 3.2 kommer att släppas skarpt den 30:e juni.

Det bör noteras att versionskraven på PHP och MySQL kommer att öka (avsevärt) med WordPress 3.2. Nu krävs minst PHP 5.2.4 och MySQL 5.0. Om du inte har detta, då kan du inte uppdatera (eller ja, då kommer din uppdaterade webbplats inte fungera).

Du kan testa om ditt webbhotell har stöd för WordPress 3.2 med tillägget WordPress Requirements Check. Så här ser det t ex ut på ett webbhotell som inte kan hantera WordPress 3.2:

WordPress 3.2 #fail hos Crystone

Backup av WordPress till Dropbox

Jag har tidigare berättat om några olika backuplösningar för WordPress och nu är det dags för ytterligare ett alternativ: Dropbox. Om du inte har levt under en sten de senaste åren så vet du att Dropbox är en av världens smidigaste backuplösningar.

För att ta backup på WordPress till Dropbox, installera det nya WordPress-tillägget ”WordPress Backup to Dropbox”. Aktivera tillägget, auktorisera mot Dropbox (oroa dig inte, användaruppgifterna sparas inte) och ställ in backupen så som du vill ha den.

WordPress och Dropbox är en klockren kombination, som varmt kan rekommenderas!

Domän, WordPress & e-post – så billigt & enkelt som möjligt

Även om jag främst sätter upp rätt så avancerade lösningar för WordPress så får jag ofta frågor om hur man kommer igång med WordPress så billigt och enkelt som möjligt.

Alldeles för många gånger har jag sett hur folk har köpt plats hos ett billigt webbhotell, bara för att drabbas av plågsamma laddningstider, urusel service och obefintlig support. Om du främst är ute efter en så billig lösning som möjligt så finns det bättre alternativ.

Jag ska nu visa hur man fixar ett eget domännamn och hemsida med WordPress och e-post hos Google – för endast 200-250 kr/år (!).

Det här är en lösning som passar alla som vill komma igång med WordPress så snabbt, enkelt och billigt som möjligt. Lösningen bygger på den kommersiella versionen av WordPress – WordPress.com.

Kort om WordPress.com

Med WordPress.com slipper du bry dig om tekniskt trams, säkerhetsuppdateringar osv, men du blir samtidigt mer begränsad än med den öppna lösningen från WordPress.org.

Det finns dock väldigt stora möjligheter att anpassa utseendet även på sidor hos WordPress.com. Förutom 100+ olika teman så kan man, mot en mindre kostnad, fritt anpassa sin stilmall (typsnitt, färger osv).

Hur bra fungerar WordPress.com då? Jag använder själv WordPress.com för denna sida. Bland mina grannar märks bl a Carl Bildt, TechCrunch och I Can Has Cheezburger?

När ska du inte välja WordPress.com? Om du vill ha fullständig frihet och/eller särskilda tillägg, teman eller andra anpassningar så ska du använda den öppna lösningen från WordPress.org med ett bra WordPress-webbhotell.

Är allt klart och tydligt? Då kör vi!

1. Registrera ett domännamn
Börja med att registrera din domän hos valfri domänleverantör. Exakt hur du gör detta varierar beroende på din leverantör. Jag vill givetvis rekommendera FS Data (jag arbetar där), men även Frobbit är ett bra alternativ.

Kostnaden för t ex en .se domän brukar inte vara mer än 100-150 kr/år. Om du betalar mer än så, kontakta då gärna din leverantör och fråga vad det är du betalar extra för.

2. Skapa konton hos WordPress.com och Google
Börja med att skapa dig ett konto hos WordPress.com. Ange valfria uppgifter här, förslagsvis att du döper din blogg till detsamma som din domän. Besök även Google och skapa dig ett Google Apps-konto (klicka på knappen Kom igång). Ange domänen som du har registrerat och fyll sedan i dina personuppgifter.

Efter båda dessa registreringar kommer du få e-postmeddelanden med länkar du behöver klicka på för att aktivera dina konton. Glöm inte bort detta.

3. Peka om ditt domännamn
Peka sedan om din domän till följande namnservrar (DNS-servrar):

ns1.wordpress.com
ns2.wordpress.com
ns3.wordpress.com

Om du registrerar ditt domännamn hos FS Data så behöver du bara skicka e-post till [email protected] för att få snabb hjälp med din ompekning.

En ompekning kan ta allt ifrån några timmar upp till ett dygn. Låt det gå åtminstone 2-3 timmar innan du går vidare till nästa steg.

4. Koppla din domän till WordPress.com
Nu är det dags att logga in på WordPress.com (högst upp till vänster). När du är inloggad så klickar du (i toppmenyn) på ”My Blog” > ”Dashboard”.

Nu är du i panelen för din hemsida hos WordPress.com. Här skapar du sidor, skriver blogginlägg, väljer teman osv.

Men allt är på engelska, så gå in under ”Settings” > ”General” i vänstermenyn och välj ”sv – Svenska” under ”Language”, allra längst ner på sidan. På denna sida kan du även ange rätt tidszon, datum/tidsformat osv.

Expandera därefter ”Uppgraderingar” (klicka på nedåtpilen på samma rad) i vänstermenyn och klicka på ”Domäner”. I rutan för domän anger du ditt domännamn, utan ”www.” t ex sulo.se och klickar på knappen ”Lägg till en domän till bloggen”.

På nästa sida klickar du på knappen ”Map Domain”, så kommer du till en sida där du får betala för kopplingen av domänen. Kostnaden, som är en årsavgift, ligger på $12 USD, vilket motsvarar ca 80 kr. Betala detta med ett kontokort eller med Paypal och klicka till sist på knappen ”Purchase Domain Mapping” för att slutföra transaktionen.

När domänen är tillagd så anger du den som primärdomän för din WordPress.com-sida under ”Uppgraderingar” > ”Domäner” (bocka i ”Primär” framför domänen och klicka på knappen ”Uppdatera primärdomän).

När sedan bytet av namnservrar (DNS-servrar) har gått igenom ordentligt (kom ihåg, det kan ta upp till 2 dygn) så kan du surfa till ditt domännamn och komma in direkt till din sida hos WordPress.com.

5. Aktivera e-post och domän
Fortfarande inne på ”Uppgraderingar” > ”Domäner”, klicka på länken ”Ändra DNS”. Under ”Google Apps” öppnar du sedan länken ”verifieringskod” i en ny flik (högerklicka och välj detta). I den nya fliken öppnas Google Apps (där du kan behöva logga in).

Nu väljer du ”Ändrar CNAME-posten för …” och klickar på knappen ”Fortsätt”, så får du upp lite instruktioner och en kod, under punkt 2, som börjar med ”google”. Kopiera denna kod och gå tillbaka till fliken med din panel hos WordPress.com.

Åter på samma sida som tidigare klistrar du in koden i rutan till höger om länken ”verifieringskod” och klickar på knappen ”Generera DNS protokoll”. I formulärsrutan ovanför skapas det nu ett CNAME-inlägg med din Google-kod.

Kopiera därefter in nedanstående textrader i formulärsrutan (låt Google-koden vara kvar) och spara det hela genom att klicka på knappen ”Spara DNS-protokollet”.

CNAME calendar ghs.google.com.
CNAME docs ghs.google.com.
CNAME groups ghs.google.com.
CNAME mail ghs.google.com.
CNAME sites ghs.google.com.
CNAME start ghs.google.com.
MX 5 ALT1.ASPMX.L.GOOGLE.COM.
MX 5 ALT2.ASPMX.L.GOOGLE.COM.
MX 1 ASPMX.L.GOOGLE.COM.
MX 10 ASPMX2.GOOGLEMAIL.COM.
MX 10 ASPMX3.GOOGLEMAIL.COM.
TXT v=spf1 include:aspmx.googlemail.com ~all

När du har sparat detta och sidan har laddats om, så kan du gå tillbaka till fliken hos Google Apps och klicka på knappen ”Jag har slutfört stegen ovan”. Därefter klickar du på länken ”Instrumentpanel” högst upp till vänster.

Nu är du i panelen för Google Apps. Här hanterar du alla dina tjänster hos Google.

Nu aktiverar du e-posten för din domän genom att klicka på länken ”Aktivera e-post” under sektionen ”E-post”. Gå bara ner på sidan du kommer till och klicka på knappen ”Jag har slutfört stegen ovan”.

Det kan ta upp till 48 timmar för e-posten och domänen att aktiveras hos Google, men det brukar i regel bara handla om någon timme (förutsatt att du pekade om ordentligt tidigare).

När e-posten har aktiverats så kan du välja en enklare adress till den. Klicka bara på ”E-post” i ”Instrumentpanelen”, välj ”Byt webbadress” och ange ”mail” (utan citattecken) i formuläret på andra raden. Spara sedan denna inställning.

6. Hantera WordPress och Google Apps

När allt är färdigt hanterar du dina tjänster på följande adresser:

WordPress, panelen: https://sulo.se/wp-admin/
Google Apps, e-post: https://mail.sulo.se/
Google Apps, panelen: https://www.google.com/a/cpanel/sulo.se/

Ersätt bara sulo.se med din domän.

Du kan även skapa ytterligare e-postadresser i panelen hos Google och lägga upp fler webbplatser i panelen hos WordPress.com. Med Google Apps får du likaså tillgång till fräcka tjänster såsom kalender, dokumenthantering osv. Dessa tjänster hanterar och aktiverar du på samma sätt som med e-posten.

Det var allt! Har du några frågor på det? Lämna gärna en kommentar!

Google Analytics för WordPress Multi-Site

Kör du WordPress Multi-Site och vill få ut både gemensam och individuell statistik från alla webbplatser i ditt nätverk? Då kan Google Analytics Multisite Async WordPress Plugin vara något för dig. Det är ett WordPress-tillägg, från en svensk utvecklare, som erbjuder precis dessa möjligheter.

Tillägget är hittills testat med WordPress Multi-Site och webbplatser kopplade till subdomäner. Det finns ett svenskt språkstöd och utvecklaren har även tagit fram riktigt bra instruktioner på hur man sätter upp allt med Google Analytics.

Så spana in detta tillägg och rapportera gärna om du får det att fungera t ex med undermappar och/eller olika domännamn.

Så sätter du upp en blixtsnabb WordPress-server

Uppdaterat 2013: OBS, denna guide är inte längre aktuell. Jag har skrivit en ny guide här:

FS Datas blogg, Guide till en blixtsnabb WordPress-server

Som du kanske vet så körde jag tidigare en stäng beta med världens bästa och snabbaste WordPress-hantering i molnet, under namnet Kaizr. Nu är denna tjänst lagd på is, men jag tycker det vore synd om min erfarenhet från denna tid gick helt förlorad.

Nu var Kaizr en, tekniskt sett, rätt så avancerad lösning, som bäst kommer till nytta i ett riktigt moln (dvs hos Amazon, Rackspace osv, inte i något svenskt låtsasmoln). Men det går att använda delar av Kaizr, t ex för att sätta upp en blixtsnabb WordPress-server.

Vilken bra idé! Det är dags för Sveriges första crowdsourcade serverinstallation.

Det här är en installation med fokus på en så snabb WordPress-server som möjligt, som alla får använda och bidra till. Jag är givetvis inte felfri, om jag får in förslag till förändringar/förbättringar så kommer det en uppdaterad version här framöver.

OBS: Notera att fokus för denna installation är snabbhet. Du bör själv vidta åtgärder för att säkra upp din server. Jag tar inget ansvar för eventuella fel eller problem som kan uppstå om du följer dessa instruktioner (även om jag svarar på era kommentarer så gott jag kan).

Serverinstallationen gäller för Ubuntu 10.10. Det går säkert att köra Debian eller motsvarande Linux-dist, utan större förändringar.

Världens snabbaste WordPress-server: Ubuntu, Nginx, PHP-FPM & MySQL

Alla kommandon och filer är markerade med en code-tagg här nedan. Jag förutsätter att du har grundläggande administrationskunskaper, så du kan navigera runt och hantera textfiler. Alla kommandon körs även med root-privilegier på servern. För enkelhetens skull utelämnar jag alla sudo-kommandon.

1. Börja med att uppdatera och uppgradera din server. Om du får frågor här så är det bara att välja standardalternativet.

# apt-get update && apt-get -y upgrade

2. Sen installerar vi lite saker som våra programvaror (främst PHP) är beroende utav. Denna lista går säkert att korta ner.

# apt-get -y install make bison flex gcc patch autoconf subversion locate unzip
# apt-get -y install build-essential libtool libpcrecpp0 libpcre3-dev libxml2-dev libmysqlclient16-dev libcurl4-openssl-dev libfreetype6-dev libgd2-xpm-dev libjpeg62-dev libpng12-dev libmcrypt-dev libmhash-dev libpspell-dev libming-dev libmm-dev libtidy-dev libxslt1-dev libevent-dev libc-client-dev autoconf2.13

3. Därefter installerar vi PHP med ett gäng olika tillägg. De viktigaste i sammanhanget är tilläggen för PHP-FPM och Xcache

# apt-get -y install php5 php5-cgi php5-cli php5-common php5-curl php5-fpm php5-gd php5-imap php5-mcrypt php5-mhash php5-mysql php5-pspell php5-remctl php5-sqlite php5-suhosin php5-svn php5-tidy php5-xcache php5-xmlrpc php5-xsl php-pear
# /etc/init.d/php5-fpm stop

4. Sedan installerar vi den ryska webbservern Nginx.

# echo "deb http://ppa.launchpad.net/nginx/development/ubuntu maverick main" >> /etc/apt/sources.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
# apt-get update
# apt-get install nginx
# /etc/init.d/nginx stop

På vissa VPS:er/servrar är Apache installerat som standard. För att undvika konflikter med Nginx, avinstallera samtliga Apache-relaterade program. Exakt kommando kan variera, beroende på vad som är installerat på din server, här är ett exempel:

# apt-get remove apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common

5. Och så installerar vi MySQL. Glöm inte bort lösenordet som du anger under installationen.

# apt-get install -y mysql-server

6. Till slut så konfigurerar vi lite småsaker på servern, främst relaterade till Nginx/PHP.

# cd /etc/nginx
# mv fastcgi_params fastcgi_params.old
# nano fastcgi_params

Lägg in följande innehåll:

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $http_x_forwarded_for;
fastcgi_param HTTP_X_FORWARDED_FOR $http_x_forwarded_for;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 32k;
fastcgi_buffers 32 32k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

I samma mapp skapar vi även en fil som hanterar omskrivningar för WordPress, både med och utan WP Super Cache.

# nano wordpress_params.supercache

Lägg in följande innehåll:

if (-f $request_filename) {
break;
}
set $supercache_file '';
set $supercache_uri $request_uri;

if ($request_method = POST) {
set $supercache_uri '';
}
if ($query_string) {
set $supercache_uri '';
}
if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache_uri '';
}
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html;
}
if (-f $document_root$supercache_file) {
rewrite ^(.*)$ $supercache_file break;
}
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*.php)$ $1 last;
rewrite ^ /index.php last;
}
error_page 404 = //index.php?q=$uri;

Till sist så startar vi även tjänsterna för Nginx och PHP-FPM.

# /etc/init.d/nginx start
# /etc/init.d/php5-fpm start

Nu är serverinstallationen klar (men som sagt, glöm inte att säkra upp allt ordentligt).

Här är alla kommandon för att stoppa, starta och starta om tjänsterna på servern:

# /etc/init.d/nginx stop
# /etc/init.d/nginx start
# /etc/init.d/nginx restart
# /etc/init.d/php5-fpm stop
# /etc/init.d/php5-fpm start
# /etc/init.d/php5-fpm restart
# /etc/init.d/mysql stop
# /etc/init.d/mysql start
# /etc/init.d/mysql restart

Lägg upp en sajt på din blixtsnabba WordPress-server

Nu ska vi sätta upp en sajt på servern. Det är blir en egen ”virtual host”, som kör med en egen användare (till skillnad från t ex WordPress Multi-Site, där vi har en gemensam användare/virtual host för alla sajter). Detta underlättar vid felsökning, kvotahantering och bidrar även till ökad säkerhet.

1. Börja med att skapa en användare och en databas. Jag använder sulo_se som namn på användaren och sulo.se som domän på sajten.

# adduser sulo_se

Notera understrecket i användarnamnet. Inga punkter här inte.

mysql -u root -p
CREATE DATABASE sulo_se;
GRANT ALL PRIVILEGES ON sulo_se.* TO "sulo_se"@"%" IDENTIFIED BY "lösenord";
FLUSH PRIVILEGES;
EXIT;

2. Nu sätter vi upp en PHP-konfiguration för sajten.

# cd /etc/php5/fpm/pool.d/
# mv www.conf ../
# nano sulo.se.conf

Lägg in följande innehåll:

[sulo.se]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.owner = sulo_se
listen.group = sulo_se
listen.mode = 0666
user = sulo_se
group = sulo_se
pm = dynamic
pm.max_children = 10
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 2
pm.max_requests = 50
request_slowlog_timeout = 60s
slowlog = /var/log/php-fpm.log.slow

Det här är en rätt så sparsmakad och resurssnål konfiguration. Du bör verkligen läsa kommentarerna i www.conf för mer info.

Om du t ex vill lägga till ytterligare sajter, efter denna, så måste du välja en annan port för listen, t ex från 9000 till 9001. Detta måste även synkas med konfigurationen av Nginx (här nedan). Om du vill öka kapaciteten på sajten (ta emot fler samtidiga besökare) så kan du skruva upp antalet servrar.

3. Konfigurera Nginx för din sajt

# cd /etc/nginx/sites-enabled
# nano sulo.se

Lägg in följande innehåll:

server {
listen 80;
server_name sulo.se *.sulo.se;
server_name_in_redirect off;
client_max_body_size 64M;
access_log /home/sulo_se/sulo.se/logs/access.log;
error_log /home/sulo_se/sulo.se/logs/error.log;

location / {
root /home/sulo_se/sulo.se;
index index.php;
rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/sulo_se/sulo.se/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}

Här kan du t ex se listen-direktivet från konfigurationen av PHP-FPM (som ska öka om du lägger till ytterligare sajter). Det är värt att notera att vi lägger lite loggar, för enkel åtkomst, under /logs på din domän (t ex www.sulo.se/logs/). Du kan givetvis flytta eller lösenordsskydda dem om du vill.

4. Allra sist hämtar vi ner och installerar WordPress.

Du kan givetvis välja en nyare version av WordPress om en sådan finns. Vi passar likaså på att installera det svenska språkstödet.

# mkdir /home/sulo_se/sulo.se && cd /home/sulo_se/sulo.se
# svn co http://core.svn.wordpress.org/tags/3.0.4/ .
# mkdir wp-content/languages && cd wp-content/languages/
# wget http://svn.automattic.com/wordpress-i18n/sv_SE/tags/3.0.4/messages/sv_SE.mo
# cd -
# mkdir logs
# mv wp-config-sample.php wp-config.php
# nano wp-config.php

Ange dina databasuppgifter och spara filen. För att aktivera det svenska språkstödet, uppdatera följande variabel:

define ('WPLANG', 'sv_SE');

Till sist sätter vi rätt ägare på WordPress-installationen.

# cd /home/sulo_se
# chown -Rf sulo_se:sulo_se *

Därefter är det bara att starta om Nginx och PHP-FPM (se kommandon ovan). Sen kan du surfa in på sidan (förutsatt att domänen pekar till din server) och köra igång med din blixtsnabba WordPress-server.

Övrigt/tips på länkar & leverantörer

Förutom Google så finns det bra dokumentation här: Nginx, PHP-FPM och MySQL

När det gäller kapaciteten till din server så bör du åtminstone ha 1 GB RAM-minne. Även om t ex Nginx kräver mindre resurser än Apache så älskar WordPress (och PHP) RAM-minne. Glöm inte bort att vi även kör en databasserver här.

Jag har själv testat serverinstallationen med samtliga VPS:er hos FS Data och de funkar till 100 %. Det fungerar säkert även med VPS:er/servrar hos andra leverantörer, om än att det ger bonuspoäng i min bok om du väljer FS Data. 😉

Har du några frågor eller är något galet i serverinstallationen? Lämna en kommentar! Får du ihop allt och är skitnöjd med din nya WordPress-server? Bjud mig på en öl nästa gång vi ses!