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.
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.
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:
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:
Recheck the firewall configuration:
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 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
- 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-fpmare already installed. This is not an error, as
php-fpmwere 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
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/hostsfile 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 -y install mariadb mariadb-server
Enable and start MariaDB via
systemctl enable mariadb
systemctl start mariadb
Verify that MariaDB is installed, enabled, and running using
systemctl status mariadb
- Verify the Installed Version of MariaDB
Verify the installed version of MariaDB using ‘mysql’.
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