Before anyone can start building a world-changing website or application on LEMP, they have to lay the foundation: the stack. In this Hands-On Lab, we will walk through the installation of the components that make up the LEMP stack on RHEL 8. We will also configure the Linux environment to host the LEMP stack.
When we have completed this lab, we will have a running LEMP stack on RHEL 8. We will also have a better understanding of how a LEMP installation is configured on RHEL 8.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Install NGINX Using the RHEL 8 Repositories
Become the ‘root’ user.
sudo su -
Install the NGINX server.
yum -y install nginx
Enable the NGINX server to start at boot time.
systemctl enable nginx
Validate the NGINX configuration.
nginx -t
Start the NGINX server and check the status.
systemctl start nginx
systemctl status nginx
The service should be ‘enabled’ and ‘running’.
- Configure HTTP Access Through the Firewall
Check the firewall configuration:
firewall-cmd --info-zone=public
HTTP traffic is not configured:
services: cockpit dhcpv6-client ssh
Allow HTTP traffic through:
firewall-cmd --zone=public --add-service=http --permanent
Reload the new firewall configuration to pick up the change:
firewall-cmd --reload
Recheck the firewall configuration:
firewall-cmd --info-zone=public
We should see HTTP listed:
services: cockpit dhcpv6-client http ssh
- Verify Basic HTTP Functionality in NGINX
Let’s verify that we can load the default NGINX web page using
curl
:curl http://`curl v4.ifconfig.co`
Now we’ll use a web browser to go to the default NGINX web page at http://OUR_PUBLIC_IP_ADDRESS. We should see the default NGINX page. We can find the public IP address of the instance in the
/home/cloud_user/server_info.txt
file.- Install the PHP Components
Install the PHP components using YUM:
yum -y install php php-pdo php-mysqlnd php-gd php-mbstring php-fpm
We may notice that
php
andphp-fpm
are already installed. This is not an error, asphp
andphp-fpm
were installed during the creation of the lab environment.- Verifying PHP Functionality in NGINX
Load the ‘
phpinfo
‘ page using ‘curl
‘. Notice that we are specifying a header (using the-H
option).curl -H "www.bigstatecollege.edu" http://www.bigstatecollege.edu/phpinfo.php
We should see the ‘
phpinfo
‘ page for this server. If you put your server’s public IP address into your/etc/hosts
file pointing to www.bigstatecollege.edu you should be able to access the ‘phpinfo’ page at http://www.bigstatecollege.edu/phpinfo.php using your web browser.- Install MariaDB
Install MariaDB using
yum
:yum -y install mariadb mariadb-server
Enable and start MariaDB via
systemctl
:systemctl enable mariadb
systemctl start mariadb
Verify that MariaDB is installed, enabled, and running using
systemctl
:systemctl status mariadb
- Verify the Installed Version of MariaDB
Verify the installed version of MariaDB using ‘mysql’.
mysql -V
The exact version is not critical here, but we want to confirm it returns a result.
[root@ip-10-0-1-205 ~]# mysql -V
mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1