How to Install Apache, MariaDB and PHP on CentOS Stream 9

This is one of the most commonly used Software Stack for building your web applications. This is also known as LAMP (Linux, Apache, MySQL/MariaDB, PHP/Perl/Python) Stack.

Update CentOS Stream 9 Software Packages

Let's update software packages first. To perform updates, run the following command:

dnf update

Install Apache Web Server

First, we will start by installing the Apache webserver. To complete the installation, use the following command:

dnf install httpd httpd-tools 

Output:

Once the installation is complete, enable Apache (to start automatically upon system boot), start the webserver, and verify the status using the commands below.

systemctl enable httpd

systemctl start httpd

systemctl status httpd

Output:

To make your pages available to the public, you will have to edit your firewall rules to allow HTTP and HTTPS requests on your web server by using the following commands.

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

Output:

[root@server ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@server ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@server ~]# firewall-cmd --reload
success

Verify that the webserver is running and accessible by accessing your server’s IP address from your browser,

http://IP_address

Replace the IP_address with the actual IP of the server.

Install MariaDB Server

MariaDB is a popular database server. The installation is simple and requires just a few steps as shown.

dnf install mariadb-server mariadb -y

Output:

Once the installation is complete, enable MariaDB (to start automatically upon system boot), start the MariaDB, and verify the status using the commands below.

systemctl start mariadb

systemctl enable mariadb

systemctl status mariadb

Output:

Finally, you will want to secure your MariaDB installation by issuing the following command.

mysql_secure_installation

Output:

Once secured, you can connect to MySQL and review the existing databases on your database server by using the following command.

mysql -e "SHOW DATABASES;" -p

Output:

[root@server ~]# mysql -e "SHOW DATABASES;" -p
Enter password:
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
[root@server ~]#

Done!

Install PHP 8

To install PHP on your RHEL 8 use the command below.

yum install php php-mysqlnd php-pdo php-gd php-mbstring

Now restart your web server so that Apache knows that it will be serving PHP requests as well.

systemctl restart httpd 

Test your PHP, by creating a simple info.php file with a phpinfo() function in it. The file should be placed in the directory root for your web server, which is /var/www/html.

To create the file use:

echo "<?php phpinfo() ?>" > /var/www/html/info.php

Now again, access http://localhost/info.php or http://yourserver-ip-address/info.php. You should see a page similar to the below one.

Once confirmed, we recommend removing the info.php as it could be a security issue later on.