The LAMP server is the foundation of Linux web hosting. If you’re looking to set up a LAMP stack to host your website, this guide will provide you with the necessary information on how to get start with LAMP on RHEL 8 / CentOS 8 Linux server.
In this tutorial you will learn:
- How to install all LAMP prerequisite packages on RHEL 8 / CentOS 8.
- How to secure MariaDB database.
- How to start httpd and MariaDB services.
- How to open HTTP and HTTPS firewall ports.
Software Requirements and Conventions Used
Category | Requirements, Conventions or Software Version Used |
---|---|
System | RHEL 8 / CentOS 8 |
Software | MariaDB Server 10.3.10, PHP 7.2.11-1, Apache/2.4.35 (Red Hat Enterprise Linux) |
Other | Privileged access to your Linux system as root or via the sudo command. |
Conventions |
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command$ – requires given linux commands to be executed as a regular non-privileged user |
How to install LAMP Server on RHEL 8 / CentOS 8 Linux step by step instructions
- Install all prerequisites.The following command will install all package prerequisites and tools required to perform the LAMP installation:
# dnf install php-mysqlnd php-fpm mariadb-server httpd
- Open HTTP and optionally HTTPS port 80 and 443 on your firewall:
# firewall-cmd --permanent --zone=public --add-service=http # firewall-cmd --permanent --zone=public --add-service=https # firewall-cmd --reload
- Start both Apache webserver and MariaDB services:
# systemctl start mariadb # systemctl start httpd
Enable MariaDB and httpd to start after system reboot:
# systemctl enable mariadb # systemctl enable httpd
- Secure your MariaDB installation and set root password:
# mysql_secure_installation
- Confirm the LAMP server installation. Create a file called
info.php
within the/var/www/html/
directory with the following content:<?php phpinfo(); ?>
-
change permissions and change file SELinux security context:
# chown -R apache:apache /var/www/html/* # chcon -t httpd_sys_rw_content_t /var/www/html/ -R
- Navigate your browser to the
http://localhost/info.php
URL and confirm the LAMP installation. - Install additional PHP modules. So far we have just installed a bare bones LAMP stack. Depending on the application you are going to use you might also need to install additional PHP modules. The following command might provide you with some hints:
# dnf search php- php-gd.x86_64 : A module for PHP applications for using the gd graphics library php-fpm.x86_64 : PHP FastCGI Process Manager php-pdo.x86_64 : A database access abstraction module for PHP applications php-gmp.x86_64 : A module for PHP applications for using the GNU MP library php-dbg.x86_64 : The interactive PHP debugger php-pdo.x86_64 : A database access abstraction module for PHP applications php-xml.x86_64 : A module for PHP applications which use XML php-fpm.x86_64 : PHP FastCGI Process Manager php-cli.x86_64 : Command-line interface for PHP php-dba.x86_64 : A database abstraction layer module for PHP applications php-soap.x86_64 : A module for PHP applications that use the SOAP protocol php-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices php-ldap.x86_64 : A module for PHP applications that use LDAP php-pear.noarch : PHP Extension and Application Repository framework php-intl.x86_64 : Internationalization extension for PHP applications php-json.x86_64 : JavaScript Object Notation extension for PHP php-odbc.x86_64 : A module for PHP applications that use ODBC databases php-devel.x86_64 : Files needed for building PHP extensions php-pgsql.x86_64 : A PostgreSQL database module for PHP php-common.x86_64 : Common files for PHP php-common.x86_64 : Common files for PHP php-recode.x86_64 : A module for PHP applications for using the recode library php-bcmath.x86_64 : A module for PHP applications for using the bcmath library php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases php-enchant.x86_64 : Enchant spelling extension for PHP applications php-process.x86_64 : Modules for PHP script using system process interfaces php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases php-opcache.x86_64 : The Zend OPcache php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling php-pecl-zip.x86_64 : A ZIP archive management extension php-embedded.x86_64 : PHP library for embedding in applications php-pecl-apcu.x86_64 : APC User Cache php-pecl-apcu-devel.x86_64 : APCu developer files (header)
To install an additional package execute:
# dnf install PACKAGENAME
Once the package is installed reload the
httpd
service:# systemctl reload httpd
All done.