How To Install WordPress on Debian 10

Install WordPress on Debian 10

In this tutorial, we will show you how to install WordPress on Debian 10. For those of you who didn’t know, WordPress is the most popular open-source blogging and CMS platform worldwide, powering a quarter of all websites on the Internet today. It is based on PHP and MySQL and packs a ton of features that can be extended with free and premium plugins and themes. WordPress is the simplest way to create your website or blog.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you through the step-by-step installation of WordPress free and opensource CMS on a Debian 10 (Buster).

Install WordPress on Debian 10 Buster

Step 1. Before we install any software, it’s important to make sure your system is up to date by running the following apt commands in the terminal:

sudo apt update
sudo apt upgrade

Step 2. Installing the LAMP stack.

A Debian 10 LAMP server is required. If you do not have LAMP installed, Please read our previous tutorial to install LAMP Server on Debian 10.

Step 3. Installing WordPress on Debian 10

Now we go to WordPress’s download page and download the latest stable version of WordPress, At the moment of writing this article it is version 5.6:

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

Unpack the WordPress archive to the document root directory on your server:

unzip -q latest.zip -d /var/www/html/
cd wordpress
cp -a * ..

We will need to change some folder permissions:

chown www-data:www-data -R /var/www/html/

Step 4. Configuring MariaDB for WordPress.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. You should read and below each step carefully which will set the root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

Next, we will need to log in to the MariaDB console and create a database for WordPress. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server, you need to create a database for WordPress installation:

CREATE DATABASE wordpressdb character set utf8 collate utf8_bin;
GRANT ALL PRIVILEGES on wordpressdb.* to 'wpuser'@'localhost' identified by 'your-strong-password';
FLUSH PRIVILEGES;
exit

Step 5. Configuring WordPress

In this step we will configure the main configuration file of WordPress, where we need to configure its basic parameters so that it can be connected with the database and users:

mv wp-config-sample.php wp-config.php

Now open it using any of your favorite editors, to make any changes in the WordPress configuration file:

nano wp-config.php

Here are the values that we need to update according to our previous database and user’s setup:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpressdb');

/** MySQL database username */
define('DB_USER', 'wpuser');

/** MySQL database password */
define('DB_PASSWORD', 'your-strong-password');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Step 6. Configuring Apache for WordPress.

Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘wordpress.conf’ on your virtual server:

nano /etc/apache2/sites-available/wordpress.conf

Add the following lines:

<VirtualHost *:80>
     ServerAdmin [email protected]_domain.com
      DocumentRoot /var/www/html
     ServerName your-domain.com

     <Directory /var/www/html/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
     CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined

</VirtualHost>

Now, we can restart the Apache webserver so that the changes take place:

sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf
sudo sudo a2enmod rewrite
sudo a2ensite wordpress.conf
sudo systemctl restart apache2.service

Step 7. Installing an SSL certificate.

In this step, we will install the SSL (TLS) certificate. We will use a free Let’s Encrypt certificate that will work in all browsers and the CertBot application to install the certificate and keep it updated:

sudo apt install certbot python-certbot-apache

Next, run the certbot a command that will download the certificate and create the Apache configuration to use the certificate:

sudo certbot --apache

You will then be prompted to enter an email address for the certificate. After you have entered that you must agree to the T&C’s and decide if you want to share your email address with the Electronic Frontier Foundation. This last step is optional. Once successfully, Reload Apache again to load all the new configuration:

sudo systemctl reload apache2

Step 8. Accessing the WordPress Web Interface.

WordPress will be available on HTTP port 80 by default. Open your favorite browser and navigate to https://your-domain.com or https://server-ip-address/ and complete the required steps to finish the installation. If you are using a firewall, please open ports 80 and 443 to enable access to the control panel.

Congratulations! You have successfully installed WordPress. Thanks for using this tutorial for installing WordPress on Debian 10 Buster system. For additional help or useful information, we recommend you to check the official WordPress website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!