How to Install WordPress with LEMP on CentOS Stream 9

WordPress is a commonly used PHP-based CMS (Content Management System). For small businesses, personal blogs & websites, WordPress can be a good fit.  In this article, we are going to learn how to install WordPress on CentOS Stream 9. So, let’s get started.

Pre-requisites :

  • A system with CentOS Stream 9 installed and running.

  • root access to the system.

  • LEMP Stack installed and running, for this, you can refer to one of our guides on installing the LEMP Stack (Nginx, MariaDB and PHP).

Once you're all set, we'll proceed with WordPress installation and configuration.

Install Wget & Developer Tools

yum groupinstall "Development tools"

yum install wget

Download WordPress

First, navigate to the /var/www directory as follows:

cd /var/www/html

Now, download the latest WordPress archive from the official website of WordPress with the following command:

wget https://wordpress.org/latest.tar.gz

Check for files with the following command.

ls

Now, extract the WordPress archive file latest.tar.gz with the following command:

tar xvzf latest.tar.gz

Once the WordPress archive file latest.tar.gz is extracted, a new directory wordpress/ should be created in the folder. Now, you can remove the latest.tar.gz file as follows:

rm -v latest.tar.gz

Setting up FilePermission & Ownership

Now, change the owner and group of the wordpress/ directory and its contents to Nginx as follows:

chown -R nginx:nginx /var/www/html/wordpress

Now, change the permission or the wordpress/ directory and its content to 775 as follows:

chmod -Rf 775 ./wordpress/

Configuring Nginx vHost

Now, create a new Nginx configuration file wordpress.conf for WordPress with the following command:

vi /etc/nginx/conf.d/wordpress.conf

Now, press i to go to INSERT mode and type in the following lines of codes in the wordpress.conf file.

server {
listen 80;

server_name yourdomain.com www.yourdomain.com;
root /var/www/html/wordpress;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Change yourdomain.com with Your Domain Name. If you are using with IP , Please remove the entire server_name line.

Now, press the Esc key, and type in :wq! and press the Enter key to save and exit the file.

Now, restart & check the Nginx service with the following commands:

systemctl restart nginx.service

Configuring Database

Now create a Database, User & Password for WordPress:

mysql -u root

CREATE DATABASE wordpress;

CREATE USER 'username'@'localhost' IDENTIFIED BY 'strong_password';

GRANT ALL PRIVILEGES ON wordpress.* TO 'username'@'localhost';

FLUSH PRIVILEGES;

quit

Configuring WordPress

Now open the IP address from your browser, this will redirect you to the wp-admin part of configuring the final parts of WordPress installation.

http://IP_address

Replace the IP_address with the actual IP of the server.

Input the Database details which was configured earlier.

Now you have to make wp-config.php file and copy code from the screen and paste it on wp-config.php:

cd /var/www/html/wordpress

vi wp-config.php

Now paste the code.

Now, press the Esc key, and type in :wq! and press the Enter key to save and exit the file.

Continue with installation:

Now you have successfully installed WordPress with LEMP on your server.