Med Raspberry PI 2 så har den nog med kraft för att faktiskt köra en website baserat på WordPress utan att den känns seg. Observer det går också att köra detta på en Raspbery Pi B men det går lite långsammare. Jag har valt nginx som webserver i ställe för Apache som de flesta artiklarna utgår ifrån. Artikeln utgår också från att du redan satt upp en nginx server med php stöd som finns beskriven i artikeln Raspberry PI som webserver så om du inte gjort det följ instruktionerna i den artikeln först.
Vi börjar med att installera stöd för mysql och en cache för php
1 |
sudo apt-get install php-apc php5-mysql libssh2-php mysql-server mysql-client |
Rekommenderat är att du sätter ett lösenord för mysql
Nu ska vi skapa en database för wordpress, lösenordet är det du angav vid installationen av mysql (föregående moment)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
pi@rpi2 ~ $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 44 Server version: 5.5.44-0+deb7u1 (Debian) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> |
Då ska vi först skapa en database med namnet wppi
1 2 |
mysql> CREATE DATABASE wppi; Query OK, 1 row affected (0.01 sec) |
och sedan skapa en användare i mysql för wordpress, vi skapar en användare wppi_user med lösenordet hemligt. OBS!!! använd ett annat lösenord i din installation OBS!!!
1 2 |
mysql> CREATE USER 'wppi_user'@'localhost' IDENTIFIED BY 'hemligt'; Query OK, 0 rows affected (0.01 sec) |
sedan ska vi ge användaren wppi_user rättigheter att hantera databasen wppi och alla dess tabeller
1 2 |
mysql> GRANT ALL PRIVILEGES ON wppi.* TO 'wppi_user'@'localhost'; Query OK, 0 rows affected (0.00 sec) |
sedan uppdatera vi rättighetsinformationen
1 2 |
mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) |
då är vi klar men de ändringar som man behöver vara root i mysql så då kan vi avsluta
1 2 |
mysql> quit; Bye |
Då kan vi kontrollera att användaren fungerar, använd de lösenordet då satte på wppi_user
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
pi@rpi2 ~ $ mysql -u wppi_user -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 45 Server version: 5.5.44-0+deb7u1 (Debian) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> quit; Bye |
Då är vi klara med installation och konfigureringen av mysql.
Nu ska vi ändra några inställningar i nginx för att wordpress och php ska fungera.
1 |
sudo nano /etc/nginx/sites-available/default |
Letar rätt på raderna
1 2 |
root /usr/share/nginx/www; index index.html index.htm; |
och ändra den till, raden root ska innehålla namnet på katalogen där wordpress är installerad om du ändra sökvägen får du ändra namn på den uppackade katalogen senare i beskrivning.
1 2 |
root /var/www/wordpress; index index.php index.html index.htm; |
Spara filen och starta sedan om nginx
1 |
sudo service nginx restart |
Nu är det dax att ladda ner och packa upp wordpress, här finns det två vägar att gå den Engelska och den Svenska. Väljer man en Svenska installation så blir allting på Svenska direkt och likadant den Engelska på Engelska. Eftersom man kan byta språk efteråt så har det egentligen ingen betydelse vad man utgår från men jag kommer ändå att visa båda varianterna. Det enda som egentligen är att i konfigurationsfilerna så står det på Svenska på den Svenska varianten. Jag kommer att gå igenom den Engeslka först men du kan hoppa direkt till den Svenska installationen här.
Installation Engelska version
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
pi@rpi2 ~ $ cd /var/www pi@rpi2 /var/www $ curl -L http://wordpress.org/latest.tar.gz | sudo tar xz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 178 100 178 0 0 125 0 0:00:01 0:00:01 --:--:-- 626 100 6160k 100 6160k 0 0 19381 0 0:05:25 0:05:25 --:--:-- 86168 pi@rpi2 /var/www $ ls -l wordpress total 176 -rw-r--r-- 1 nobody nogroup 418 Sep 25 2013 index.php -rw-r--r-- 1 nobody nogroup 19930 Jan 1 2015 license.txt -rw-r--r-- 1 nobody nogroup 7360 May 7 00:07 readme.html -rw-r--r-- 1 nobody nogroup 4951 Aug 20 2014 wp-activate.php drwxr-xr-x 9 nobody nogroup 4096 May 7 03:45 wp-admin -rw-r--r-- 1 nobody nogroup 271 Jan 8 2012 wp-blog-header.php -rw-r--r-- 1 nobody nogroup 5007 Jan 8 2015 wp-comments-post.php -rw-r--r-- 1 nobody nogroup 2727 Apr 12 23:29 wp-config-sample.php drwxr-xr-x 4 nobody nogroup 4096 May 7 03:45 wp-content -rw-r--r-- 1 nobody nogroup 3115 Mar 18 00:38 wp-cron.php drwxr-xr-x 12 nobody nogroup 4096 May 7 03:45 wp-includes -rw-r--r-- 1 nobody nogroup 2380 Oct 25 2013 wp-links-opml.php -rw-r--r-- 1 nobody nogroup 3123 Apr 12 23:29 wp-load.php -rw-r--r-- 1 nobody nogroup 34241 Apr 12 23:29 wp-login.php -rw-r--r-- 1 nobody nogroup 8252 Jul 17 2014 wp-mail.php -rw-r--r-- 1 nobody nogroup 11048 Apr 12 23:29 wp-settings.php -rw-r--r-- 1 nobody nogroup 25152 Nov 30 2014 wp-signup.php -rw-r--r-- 1 nobody nogroup 4035 Nov 30 2014 wp-trackback.php -rw-r--r-- 1 nobody nogroup 3032 Feb 9 2014 xmlrpc.php |
Nu finns installationen i /var/www/wordpress du kan byta namn på katalogen om du vill men beskrivningen antar att den heter wordpress. Nu behöver vi styra om vilket som är huvudkatalog för webservern.
Först skapar vi en konfigurationsfil genom att kopiera exempelfilen
1 2 |
cd /var/www/wordpress sudo cp wp-config-sample.php wp-config.php |
Vi måste sedan sätta upp informationen om databas, databasanvändares och lösenord, det gör vi i den nyss skapade filen
1 |
sudo nano wp-config.php |
Ändra markerade rader så de stämmer överens med de namn och lösenord som du gett tidigare
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php /** * The base configurations of the WordPress. * * This file has the following configurations: MySQL settings, Table Prefix, * Secret Keys, and ABSPATH. You can find more information by visiting * {@link https://codex.wordpress.org/Editing_wp-config.php Editing wp-config.php} * Codex page. You can get the MySQL settings from your web host. * * This file is used by the wp-config.php creation script during the * installation. You don't have to use the web site, you can just copy this file * to "wp-config.php" and fill in the values. * * @package WordPress */ // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wppi'); /** MySQL database username */ define('DB_USER', 'wppi_user'); /** MySQL database password */ define('DB_PASSWORD', 'hemligt'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', ''); |
Längre ner i filen ser man följande rader
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/**#@+ * Authentication Unique Keys and Salts. * * Change these to different unique phrases! * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service} * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again. * * @since 2.6.0 */ define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); |
dessa används för att kryptera lösenord m.m på ett unikt sätt för varje installation. Gå till adressen https://api.wordpress.org/secret-key/1.1/salt/ för att generera unika nycklar för dig.
Du får upp en sida som ser ut något som denna
1 2 3 4 5 6 7 8 |
define('AUTH_KEY', '#CF9<+}I7?=-k`X-f9Y?Y4)0GdoA8^|/$9)av!w @vx1XUJF)+5GrK Hww=ld7v1'); define('SECURE_AUTH_KEY', 'xM9Ry}4W =y]bpb481|9Gq`Ac%mL|xgm= +^p{29)!295:8(0_A83i,ltXjy/+]5'); define('LOGGED_IN_KEY', 'wB0a;.mun#HHuU^UIY1(1xsvHP~$E`:Yo2%*ruVA(iXYkF^yzRKmVTe.GBDt(-VL'); define('NONCE_KEY', '`grL5<*5Pfp[lADY?gjOboO7Y!>-%JB|8Z%xm(oSBmJgfB;/SAG.V_.$5fZZ409x'); define('AUTH_SALT', '4RSv2krSk40A/&#SKky{4MQrkuYS&n7hRf1_+J|Z.v${BTw3i%l{B(~-_aS,$&Hb'); define('SECURE_AUTH_SALT', 'f)to)pAHofqF})VX7g?H3jGZ1L>b zI=(x(Hv$,/$fyQAxh-(^NQxsw%>]-NC91p'); define('LOGGED_IN_SALT', '|F#JhulR(=F@o!oahfM^Xa:Hi3/sT7+D7Qo!Nza9aG!*0((lU}/Rp*U8(#n->9CK'); define('NONCE_SALT', 'xZ)&IdJf<DN,df05@nVmdoQMC5cNGLmjfg,CrM~XR4DXw33WT:HSoFL6ZlG-L`7b'); |
Kopiera radera får websidan och byt ut motsvarande rader i wp-config.php, spara filen
Nu kan vi surfa in på wordpress för att slutföra installationen, om du har avahi installerat på din maskin kan du alltid nå den via http://<raspberrypinamn>.local/ i mitt fall http://rpi2.local/ om allt gick rätt så ska ni få upp följande sida, fyll i rutorna och tryck Install WordPress.
Om servern kan nås från internet så gör inte som i exemplet, välj ett lösenord som är mer säkert. Efter ett par sekunder får du upp följande
Klicka login så får du upp loginrutan
Använd användarnamnet och lösenordet som du angav på websidan vid installation, om det blev rätt så ska du få upp kontrollpanelen för wordpress
Nu får man gå in och fixa lite i inställningarna för att de ska stämma med Svenska format, klicka på Settings i vänstermenyn och ställ in Timezone, Date Format och Time Format
Glöm inte att klicka på Save Changes
Under setup , Site Language kan man även byta till valfritt språk
Kom bara ihåg att alla menyer, login och sådant även byter språk.
Klicka här för att hoppa förbi den Svenska delen
Installation Svenska version
Tyvärr har den svenska versionen inte någon generisk URL för att ladda ner den senaste versionen utan man blir tvungen att att ladda ner en specifik version, man kan alltid uppdatera wordpress version senare eller så surfar man in på https://sv.wordpress.org/ för att se vad som är senaste versionen. Senaste versionen när denna artikel skrevs var 4.2.2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
pi@rpi2 ~ $ cd /var/www pi@rpi2 /var/www $ curl -L https://sv.wordpress.org/wordpress-4.2.2-sv_SE.tar.gz | sudo tar xz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6550k 100 6550k 0 0 81686 0 0:01:22 0:01:22 --:--:-- 223k pi@rpi2 /var/www $ ls -l wordpress total 176 -rw-r--r-- 1 nobody nogroup 418 Sep 25 2013 index.php -rw-r--r-- 1 nobody nogroup 19930 Jan 1 2015 license.txt -rw-r--r-- 1 nobody nogroup 7360 May 7 00:07 readme.html -rw-r--r-- 1 nobody nogroup 4951 Aug 20 2014 wp-activate.php drwxr-xr-x 9 nobody nogroup 4096 May 7 03:45 wp-admin -rw-r--r-- 1 nobody nogroup 271 Jan 8 2012 wp-blog-header.php -rw-r--r-- 1 nobody nogroup 5007 Jan 8 2015 wp-comments-post.php -rw-r--r-- 1 nobody nogroup 2727 Apr 12 23:29 wp-config-sample.php drwxr-xr-x 4 nobody nogroup 4096 May 7 03:45 wp-content -rw-r--r-- 1 nobody nogroup 3115 Mar 18 00:38 wp-cron.php drwxr-xr-x 12 nobody nogroup 4096 May 7 03:45 wp-includes -rw-r--r-- 1 nobody nogroup 2380 Oct 25 2013 wp-links-opml.php -rw-r--r-- 1 nobody nogroup 3123 Apr 12 23:29 wp-load.php -rw-r--r-- 1 nobody nogroup 34241 Apr 12 23:29 wp-login.php -rw-r--r-- 1 nobody nogroup 8252 Jul 17 2014 wp-mail.php -rw-r--r-- 1 nobody nogroup 11048 Apr 12 23:29 wp-settings.php -rw-r--r-- 1 nobody nogroup 25152 Nov 30 2014 wp-signup.php -rw-r--r-- 1 nobody nogroup 4035 Nov 30 2014 wp-trackback.php -rw-r--r-- 1 nobody nogroup 3032 Feb 9 2014 xmlrpc.php |
Nu finns installationen i /var/www/wordpress du kan byta namn på katalogen om du vill men beskrivningen antar att den heter wordpress. Nu behöver vi styra om vilket som är huvudkatalog för webservern.
Först skapar vi en konfigurationsfil genom att kopiera exemplefilen
1 2 |
cd /var/www/wordpress sudo cp wp-config-sample.php wp-config.php |
Vi måste sedan sätta upp informationen om databas, databasanvändares och lösenord, det gör vi i den nyss skapade filen
1 |
sudo nano wp-config.php |
Ändra markerade rader så de stämmer överens med de namn och lösenord som du gett tidigare
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php /** * Baskonfiguration för WordPress. * * Denna fil innehåller följande konfigurationer: Inställningar för MySQL, * Tabellprefix, Säkerhetsnycklar, WordPress-språk, och ABSPATH. * Mer information på {@link https://codex.wordpress.org/Editing_wp-config.php * Editing wp-config.php}. MySQL-uppgifter får du från ditt webbhotell. * * Denna fil används av wp-config.php-genereringsskript under installationen. * Du behöver inte använda webbplatsen, du kan kopiera denna fil direkt till * "wp-config.php" och fylla i värdena. * * @package WordPress */ // ** MySQL-inställningar - MySQL-uppgifter får du från ditt webbhotell ** // /** Namnet på databasen du vill använda för WordPress */ define('DB_NAME', 'wppi'); /** MySQL-databasens användarnamn */ define('DB_USER', 'wppi_user'); /** MySQL-databasens lösenord */ define('DB_PASSWORD', 'hemligt'); /** MySQL-server */ define('DB_HOST', 'localhost'); /** Teckenkodning för tabellerna i databasen. */ define('DB_CHARSET', 'utf8'); /** Kollationeringstyp för databasen. Ändra inte om du är osäker. */ define('DB_COLLATE', ''); |
Längre ner i filen ser man följande rader
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/**#@+ * Unika autentiseringsnycklar och salter. * * Ändra dessa till unika fraser! * Du kan generera nycklar med {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service} * Du kan när som helst ändra dessa nycklar för att göra aktiva cookies obrukbara, vilket tvingar alla användare att logga in på nytt. * * @since 2.6.0 */ define('AUTH_KEY', 'Ange en unik fras här'); define('SECURE_AUTH_KEY', 'Ange en unik fras här'); define('LOGGED_IN_KEY', 'Ange en unik fras här'); define('NONCE_KEY', 'Ange en unik fras här'); define('AUTH_SALT', 'Ange en unik fras här'); define('SECURE_AUTH_SALT', 'Ange en unik fras här'); define('LOGGED_IN_SALT', 'Ange en unik fras här'); define('NONCE_SALT', 'Ange en unik fras här'); |
dessa används för att kryptera lösenord m.m på ett unikt sätt för varje installation. Gå till adressen https://api.wordpress.org/secret-key/1.1/salt/ för att generera unika nycklar för dig.
Du får upp en sida som ser ut något som denna
1 2 3 4 5 6 7 8 |
define('AUTH_KEY', '#CF9<+}I7?=-k`X-f9Y?Y4)0GdoA8^|/$9)av!w @vx1XUJF)+5GrK Hww=ld7v1'); define('SECURE_AUTH_KEY', 'xM9Ry}4W =y]bpb481|9Gq`Ac%mL|xgm= +^p{29)!295:8(0_A83i,ltXjy/+]5'); define('LOGGED_IN_KEY', 'wB0a;.mun#HHuU^UIY1(1xsvHP~$E`:Yo2%*ruVA(iXYkF^yzRKmVTe.GBDt(-VL'); define('NONCE_KEY', '`grL5<*5Pfp[lADY?gjOboO7Y!>-%JB|8Z%xm(oSBmJgfB;/SAG.V_.$5fZZ409x'); define('AUTH_SALT', '4RSv2krSk40A/&#SKky{4MQrkuYS&n7hRf1_+J|Z.v${BTw3i%l{B(~-_aS,$&Hb'); define('SECURE_AUTH_SALT', 'f)to)pAHofqF})VX7g?H3jGZ1L>b zI=(x(Hv$,/$fyQAxh-(^NQxsw%>]-NC91p'); define('LOGGED_IN_SALT', '|F#JhulR(=F@o!oahfM^Xa:Hi3/sT7+D7Qo!Nza9aG!*0((lU}/Rp*U8(#n->9CK'); define('NONCE_SALT', 'xZ)&IdJf<DN,df05@nVmdoQMC5cNGLmjfg,CrM~XR4DXw33WT:HSoFL6ZlG-L`7b'); |
Kopiera radera får websidan och byt ut motsvarande rader i wp-config.php, spara filen
Nu kan vi surfa in på wordpress för att slutföra installationen, om du har avahi installerat på din maskin kan du alltid nå den via http://<raspberrypinamn>.local/ i mitt fall http://rpi2.local/ om allt gick rätt så ska ni få upp följande sida, fyll i rutorna och tryck Install WordPress.
Om servern kan nås från internet så gör inte som i exemplet, välj ett lösenord som är mer säkert. Efter ett par sekunder får du upp följande
Klicka login så får du upp loginrutan
Använd användarnamnet och lösenordet som du angav på websidan vid installation, om det blev rätt så ska du få upp kontrollpanelen för wordpress
Under Inställningar Webplatsspråk kan man även byta till valfritt språk
Kom bara ihåg att alla menyer, login och sådant även byter språk.
Efterfixar
Nu är det fråga om hur man vill göra, wordpress behöver kunna skriva till åtminstone katalogen wp-content för att ladda upp bilder, teman och insticksmoduler detta löses genom att ger www-data rättigheter i katalogen wp-content med kommandot
1 |
sudo chown -R www-data /var/www/wordpress/wp-content |
man behöver även lägga till en rad i wp-config.php då wordpress upptäcker att den inte äger alla filer och försöker då ladda ner via FTP istället.
1 2 |
/** använd direktacess */ define('FS_METHOD', 'direct'); |
nackdelen är att man inte kan uppdatera själva wordpress versionen via webben. Om man accepterar en något mindre säkerhet så kan man ge rättigheter för php till hela /var/www/wordpress, så när du får information om att en ny version finns tillgängligt så kan man uppdatera direkt via webben. Om man väljer det alternativet så kör man följande kommando
1 |
sudo chown -R www-data /var/www/wordpress |
Den sista saken som man kan ändra på är egentligen en smaksak, hur vill du att sökvägen till artiklarna ska se ut http://rpi2.local/?p=123 som är standard eller t.ex http://rpi2.local/2015/07/22/exempel-inlagg/ ?
Inställningen gör man med menyvalet Inställningar->Permalänkar/Settings->Permalinks, här kan man välja vilken layout länkarna ska ha
Som exemple väljer jag Dag och Månad http://rpi2.local/2015/07/22/sample-post/ och sparar.
Om du försöker surfa in till den första artikeln kommer vi att få ett error 500 eftersom webservern letar efter en statisk sida som skulle legat it /var/www/wordpress/2015/… som naturligtvis inte finns så vi får göra ytterligare en ändring i nginx för att den ska översätta detta på rätt sätt för wordpress
1 |
sudo nano /etc/nginx/sites-enabled/default |
leta rätt på raderna
1 2 3 4 5 6 7 |
location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } |
och ändra den markerade raden till try_files $uri $uri/ /index.php?$args; så att det ser ut såhär
1 2 3 4 5 6 7 |
location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?$args; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } |
Spara filen och starta om nginx
1 |
sudo service nginx restart |
Så då var installationen klar, happy wordpressing
Recent Comments