How to Install WordPress on Rocky Linux 9 with LEMP Stack
WordPress is a Content Management System (CMS), a platform you can use to build and maintain a website without any knowledge of coding. This software enables you to customize just about every aspect of your site.
Prerequisites:
WordPress requires a LEMP stack installed and running
For detailed installation, refer to LEMP Stack on Rocky linux 9
Once you've got the Web server, PHP, and DataBase services installed. We will proceed with configuring them to our requirements so they can host the WordPress website.
Creating the New Database
We will now create a Database and a user which interacts with the newly created database. This will be used to store WP data on it, So Let's login to MariaDB with the following command,
mysql -u root -p
Create a new database called wordPress
,
CREATE DATABASE wordpress;
Next, create a new MySQL user account that we will use to operate on WordPress's new database, with the username "admin"
CREATE USER `admin`@`localhost` IDENTIFIED BY '<Enter Strong Password here>';
Link the user and DB together by granting our user access to the database,
GRANT ALL ON wordpress.* TO `admin`@`localhost`;
Flush the privileges so that MySQL knows about the user permissions we just added,
FLUSH PRIVILEGES;
Exit out of the MySQL command prompt by typing,
exit
Output:
MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.002 sec)
MariaDB [(none)]> CREATE USER `admin`@`localhost` IDENTIFIED BY 'STRONG PASSWORD HERE';
Query OK, 0 rows affected (0.003 sec)
MariaDB [(none)]> GRANT ALL ON wordpress.* TO `admin`@`localhost`;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> exit
Configure Nginx
Now, in configuring the Nginx server, we will need to provide it with the complete path to the WordPress files and directories located in this server.
We will create a root directory and provide this information to the Nginx server block. If you also have a domain that you want to use for this WordPress, you should include it in the Server Block as well.
Create a directory for storing our WordPress files with the below command,
Ensure you replace example.com with your preferred domain name.
mkdir -p /var/www/html/example.com/public_html
Next, create an Nginx configuration file for your website, and do note, that the file name should have an .conf
extension as shown below.
nano /etc/nginx/conf.d/example.com.conf
Ensure you replace example.com
with your preferred domain name.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/html/example.com/public_html;
index index.html;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ =404;
}
location ~* \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
After you save and exit the file, Test the above configuration for any errors. This can be done by,
nginx -t
Once that is successful, restart the Nginx for the changes to take effect,
systemctl restart nginx
Download and Extract WordPress
Download the WordPress by using the curl
command and extract the downloaded file,
Remember to replace
example.com
with a domain name in the below commands.
curl -L -O http://wordpress.org/latest.tar.gz
tar xf latest.tar.gz
mv wordpress/* /var/www/html/example.com/public_html/
Next, we will configure the wp-config.php as shown below:
cd /var/www/html/example.com/public_html/
cp wp-config-sample.php wp-config.php
Using your favorite editor, edit the file wp-config.php
nano wp-config.php
replace the following contents with the correct values
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** Database username */
define( 'DB_USER', 'admin' );
/** Database password */
define( 'DB_PASSWORD', 'password_here' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
That is, enter the DB name, username, and password that was configured earlier.
Update file permissions
chown -R nginx:nginx /var/www/html/example.com/public_html
chcon -R -t httpd_sys_content_t /var/www/html/example.com/public_html
Navigate to your browser
(http://server_IP/ or http://example.com)
Start WordPress installation by clicking on the Run the installation button:
Provide the requested information
Once WordPress is installed log in with your new user credentials
CrownCloud - Get a SSD powered KVM VPS at $4.5/month!
Use the code WELCOME
for 10% off!
1 GB RAM / 25 GB SSD / 1 CPU Core / 1 TB Bandwidth per month
Available Locations: LAX | MIA | ATL | FRA | AMS