Set up a WordPress site on the Raspberry PI

Introduction

I was recently asked whether I could expand further and show how to install WordPress onto the web server.

To be able to follow this guide you will need to have set up your Raspberry PI and you will need to have PHP, MySQL, PHPMyAdmin and a web server such as Lighttpd or Apache installed. Follow the guide for setting up the personal web server linked above if you haven’t already.

Create the WordPress database

The first part you can do from any other computer on the same network as the Raspberry PI. Make sure the Raspberry PI is turned on and that you can connect to it as a web server. (Follow the guide about setting up a personal web server if you are unsure how to do this).

To create the WordPress database open up a browser Window and navigate to PHPMyAdmin on the Raspberry PI. The address will be something like http://192.168.1.xxx/PHPMyAdmin. (Replace xxx with the last three digits that correspond to where your Raspberry PI is located).

Click on the databases tab at the top and where it says “create new database” add a new database with a name that relates to the purpose of your database. (For example “wordpress” or “piblog”).

Set the collation sequence to the one that is most relevant for you. If in doubt choose utf8_general_ci.

Now you need to add a user that can interact with the database. Click on the “privileges” tab and click “add user”.

For the username enter something like “piwordpress” and then enter your desired password into the password field and confirm that password in the re-type field.

Click “Create user” to add the user.

Click on “privileges” again and edit the user.

Now select “Check all” and save the changes. This gives your user permission to do anything on the database. (Not ideal for real world use by the way. For real world use you would restrict the access to the bare minimum required).

Connect to your Raspberry PI

First of all start up the Raspberry PI.

If
you are connected directly to the Raspberry PI and you have booted
straight to the Raspbian desktop open up a terminal by clicking on the
LXTerminal icon.

If you are connected directly to the Raspberry PI but it boots direct to the terminal you can move on to the next section.

If
you are connecting via ssh then open up the application you use to ssh
and connect using your username and the local IP address to the PI. My
guide showing how to connect to the Raspberry PI from the Google Nexus will help with this and will also show how to VNC onto the Raspberry PI.

Download WordPress

From within the terminal on the Raspberry PI run the following command to download WordPress.

wget https://wordpress.org/latest.zip

Create the wordpress folders

Move the zip file to the /var/www folder by typing the following:

sudo mv latest.zip /var/www/latest.zip

Navigate to the /var/www folder:

cd /var/www

Now unzip the latest.zip file:

sudo unzip latest.zip

This will create a folder called wordpress under /var/www and will contain all the sub folders and files for running WordPress.

You can now remove the latest.zip file:

sudo rm latest.zip

To gain the appropriate permissions to the wordpress folder you need to change the permissions of the folder as follows:

sudo chown -R pi:users wordpress

Navigate to the wordpress folder by typing the following:

cd wordpress

You now need to create a configuration file. The easiest way to do this is to take a copy of the sample WordPress config file.

sudo cp wp-config-sample.php
wp-config.php

Open the file wp-config in the nano editor:

sudo nano wp-config.php

You need to change various parts of the config file as follows:

DB_Name – change to the name of the database you created

DB_User – change to the name of the user you created

DB_Password – change to the password you created for the user

You also need to add the various keys into the file where it says “put your unique key here”.

A list of keys will be generated for you and you can copy and paste the keys into the file replacing the keys that are already there.

Press CTRL and O and then CTRL and X to save and exit the file.

Install WordPress

You can follow the rest of this from your own computer without being connected to the PI. (Although obviously it has to be turned on).

Open a browser and navigate to http://192.168.1.xxx/wordpress/wp-admin/install.php. (replacing xxx with the appropriate value).

Enter a title for your site and then add a username and password for your site. (This can and should be different to your database username and password).

Finally enter and email address and click “Install WordPress”.

After the installation is complete you will see the screen above. Enter your username and password to access the WordPress control panel.

Summary

That is pretty much it. You can add templates and plug ins and do everything you normally would within WordPress.

If you want to see how your site looks simply open a new browser window and navigate to http://192.168.1.xxx/wordpress

Important:

This guide has been written as a proof of concept and because I was asked if I could write a guide for this.

I wouldn’t recommend using this guide to set up your Raspberry PI as a production WordPress server. Whilst the basics are correct, the setup of the database and the database user is lacking on the security front.

If you are a developer who creates WordPress plugins and templates, you can now use your Raspberry PI to test out your creations.

I hope you find this guide useful and if you have any questions or the guide doesn’t quite work for you let me know in the comments below and I will edit this article accordingly.

17 Comments

Don't take this the wrong way but this looks very much like a standard WordPress on Debian install. I'm not seeing any tweaking or adjusting to accommodate the memory constraints of the Pi or maximising it's capabilities given the Pi's weak processor.

You are right. This is a bog standard installation. The whole thing is a proof of concept as to whether it will work or not. I added a caviat to say that you shouldn't use these instructions for production use but they could be useful to a developer wanting to test out templates and add-ons

First available with WordPress Edition 2.8, this design tag profits the information of a tag. A tag ID can be approved as a parameter, but if no tag ID is approved, the information present queried tag will be came back.Because WordPress connections with this data source by itself, you as an end customer, shouldn't have to fear much about its framework.