DEV Community

Amal Satheesan
Amal Satheesan

Posted on

Wordpress installation in Raspberry Pi using Nginx

We will be continuing from were we left off. Disclaimer: You can use apache if you want. Apache is easier to setup compared to Nginx.

Keywords used in the guide:

  • Raspberry Pi
  • NGINX server
  • WordPress
  • MySQL
  • PHP

Step 1: Update the Raspberry Pi

First, make sure your Raspberry Pi is up-to-date:

sudo apt update sudo apt upgrade -y 
Enter fullscreen mode Exit fullscreen mode

Step 2: Install NGINX

NGINX will serve as your web server.

  1. Install NGINX:

    sudo apt install nginx -y 
  2. Start and enable NGINX:

    sudo systemctl start nginx sudo systemctl enable nginx 
  3. Verify NGINX is running:

    sudo systemctl status nginx 
  4. Check in a browser by typing your Raspberry Pi's IP address (e.g., http://192.168.x.x).

Step 3: Install MySQL (MariaDB)

WordPress needs a database, so we will install MariaDB.

  1. Install MariaDB server:

    sudo apt install mariadb-server -y 
  2. Secure the installation:

    sudo mysql_secure_installation 

    Follow the prompts to secure your database (set root password, remove anonymous users, disable root login remotely, etc.).

  3. Log in to MariaDB:

    sudo mysql -u root -p 
  4. Create a database for WordPress:

    CREATE DATABASE wordpress; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; EXIT; 

Step 4: Install PHP

PHP will be used to process dynamic content for WordPress.

  1. Install PHP and necessary extensions:

    sudo apt install php-fpm php-mysql php-curl php-gd php-xml php-mbstring -y 

Step 5: Configure NGINX to Use PHP

  1. Create an NGINX server block for WordPress:

    sudo nano /etc/nginx/sites-available/wordpress 
  2. Add the following configuration:

    server { listen 80; server_name _; root /var/www/wordpress; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php-fpm.sock; } location ~ /\.ht { deny all; } } 
  3. Enable the configuration:

    sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ sudo rm -r /etc/nginx/sites-enabled/default 
  4. Test and restart NGINX:

    sudo nginx -t sudo systemctl restart nginx 

Step 6: Download and Configure WordPress

  1. Install wget and unzip (if not installed):

    sudo apt install wget unzip -y 
  2. Download WordPress:

    cd /var/www sudo wget https://wordpress.org/latest.zip sudo unzip latest.zip sudo mv wordpress /var/www/ 
  3. Set correct permissions:

    sudo chown -R www-data:www-data /var/www/wordpress sudo chmod -R 755 /var/www/wordpress 
  4. Configure WordPress to connect to your database:

    cd /var/www/wordpress sudo cp wp-config-sample.php wp-config.php sudo nano wp-config.php 

    Update the database settings in wp-config.php:

    define( 'DB_NAME', 'wordpress' ); define( 'DB_USER', 'wpuser' ); define( 'DB_PASSWORD', 'password' ); define( 'DB_HOST', 'localhost' ); 

Step 7: Complete WordPress Installation

  1. Open your web browser and navigate to http://your_domain_or_IP.
  2. Follow the on-screen instructions to complete the WordPress installation.

After these steps, your Raspberry Pi should be hosting a fully functional WordPress site using NGINX, PHP, and MariaDB.

In the next blog, we will be hosting the site to public using a secure tunnel. Stay tuned for that....!

Top comments (0)