
WordPress is the popular and widely used blogging and content management system in the world. PHP processing and MySQL/MariaDB database are used as a backend in WordPress. It is simplest way to create a Blog, Portfolio Website, webshop etc. In this tutorial, we will show you how to install WordPress with Apache on CentOS 8.
Prerequisites
We are going to use LAMP (Linux, Apache, MariaDB, and PHP) stack with Apache as web server. Make sure that you met the following prerequisites before start installation process:
- CentOS server with a non-root user with sudo privileges.
- Apache must installed and configured, as shown in this tutorial.
- Your domain name should pointing to your server IP address.
- An SSL certificate installed for your domain. You can install a free Let’s Encrypt SSL certificate as shown in this tutorial.
Step 1 – Create database and Grant Permissions
WordPress is using MySQL-based database to store the data. So first of all we need to create a MariaDB database, MariaDB user and grant permission. If you system don’t have installed MariaDB, you can follow How to Install MariaDB on CentOS 8 tutorial.
At first, log in to MariaDB shell using below command:
mariadb -u root -p
It will prompt you to enter password for the root user. You will be logged in on entering correct password.
Type the below command to create a new MariaDB database for your WordPress:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Now you have to create a new MariaDB user by issuing below command:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'enter-strong-password';
Need to flush the database so changes can reflact in MySQL, type:
FLUSH PRIVILEGES;
Finally, exist from MySQL shell by typing:
EXIT;
Step 2 – Installing Additional PHP Extensions
To install all the required modules run below command in the terminal:
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
Note: PHP packages set requirements depends on WordPress plugin. Some may require additional PHP packages to be installed. Check your plugin documentation to discover its PHP requirements.
You should restart the Apache service to load these new extensions in the next section by issuing below command:
sudo systemctl restart httpd
Step 3 – Download and Setup WordPress
First, navigate to /tmp directory using below command:
cd /tmp
Now download the latest WordPress setup from the WordPress download page using using below wget command:
wget https://wordpress.org/latest.tar.gz
Once the download is completed, extract the downloaded files using below command:
tar xzvf latest.tar.gz
After that, create the configuration file for WordPress using below command:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Then copy all the files to example.com directory using below command:
sudo cp -a /tmp/wordpress/. /var/www/example.com
You need to set the correct permissions so web server can the site’s files and directories. To change the ownership of example.com directory use following chown command:
sudo chown -R www-data:www-data /var/www/example.com
Step 4 – Configure Apache
You should have installed Apache with SSL certificate installed on your CentOS machine. We will create a new virtual host for our WordPress instance.
Open your text editor and create the following file:
sudo nano /etc/apache/conf.d/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
Protocols h2 http:/1.1
<If "%{HTTP_HOST} == 'www.example.com'">
Redirect permanent / https://example.com/
</If>
DirectoryIndex index.html index.php
DocumentRoot /var/www/example.com
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
<Directory /var/www/example.com>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Note : You should replace your real domain name with example.com and set correct SSL certificates path.
After that restart the Apache service by below command:
sudo systemctl restart httpd
Complete the WordPress Installation
Now WordPress is configuration is complete and we can finish remaining installation through web interface.
To do it open your browser and type your domain name and it should show page as following:

Select language which you would like to set and click on continue button to go ahead.
After that it will show below page you just have to click on Let’s Go! button to continue.

On next page it will ask you to enter database connection details. Enter MySQL database and user details which you created previously.

Next hit on the Run the installation button to start installation process.

On next screen, You should enter name of WordPress site and set username and password for your site. Also, enter your email address and select whether you want to discourage search engines from indexing the site (It’s not recommended).

Finally, click on the Install WordPress button and once the installation is finished you will see the below screen:

Hit on Login button you will be redirected to WordPress login page. Now use the username and password which you set in previous step.

After successful login you will be redirected to the WordPress administration dashboard as following:

That’s it. You did and now you can customize your WordPress installation by installing new themes and plugins.
Conclusion
You have successfully installed WordPress with Apache on your CentOS 8 system. Take a look at how to get started with WordPress to learn more.
If you have questions feel free to leave a comment below.
Leave a Reply