Cómo instalar un servidor LAMP en RHEL, CentOS, Rocky y AlmaLinux

A LAMP stack is a collection of four different software (Linux, Apache, MySQL, and PHP) that programmers or web developers use to create and deploy websites or applications.

Este tutorial se centrará en cómo instalar y configurar el famoso conjunto LAMP con PhpMyAdmin en la última versión de RHEL y distribuciones basadas en RHEL como CentOS, Oracle Linux, Rocky y AlmaLinux.

Requisitos

Dependiendo de la distribución utilizada, utilice los siguientes enlaces para realizar una instalación mínima del sistema, utilizando una dirección IP estática para la configuración de red.

Paso 1: Instalar el servidor web Apache

1. Después de realizar una instalación mínima del sistema y configurar la interfaz de red de tu servidor con una dirección IP estática (Static IP Address), continúa e instala el paquete binario del servicio Apache (httpd) proporcionado desde los repositorios oficiales utilizando el siguiente comando yum.

# yum install httpd
Install Apache on Linux

2. Después de completar la instalación de Apache, utiliza los siguientes comandos para administrar el demonio de Apache ya que tanto RHEL como CentOS migraron sus scripts de init de SysV a Systemd¿Por qué init fue reemplazado por Systemd en Linux?.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Manage Apache in Linux

3. En el siguiente paso, asegúrate de permitir el acceso a Apache abriendo los puertos 80 y 443 en el Firewall utilizando firewall-cmd, que es el comando predeterminado para administrar Firewalld a través del demonio.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# systemctl restart firewalld
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart because it opens on-fly rules, which are not applied permanently.

Para aplicar reglas consistentes de iptables en el firewall utilizando la opción --permanent y reinicia el servicio firewalld para que surtan efecto.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl restart firewalld
Open Apache Ports in Firewalld

Algunos comandos importantes de Firewalld para administrar el firewall, como se presenta a continuación:

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=80/tcp

4. Para verificar la funcionalidad de Apache, abra un navegador remoto y escriba la dirección IP de su servidor utilizando el protocolo HTTP en la URL, y debería aparecer una página predeterminada como en la captura de pantalla a continuación.

http://server_IP
Verify Apache in Linux

5. Por ahora, la ruta DocumentRoot de Apache está configurada en la ruta del sistema /var/www/html, que por defecto no proporciona ningún archivo de índice. Si desea ver una lista de directorios de su ruta DocumentRoot.

Abra el archivo de configuración de welcome de Apache y establezca la declaración Indexes de a + en la directiva LocationMatch, utilizando la siguiente captura de pantalla como ejemplo.

# vi /etc/httpd/conf.d/welcome.conf
Configure Apache Welcome Page

6. Después de realizar cambios, cierre el archivo, reinicie el servicio de Apache para reflejar los cambios y vuelva a cargar la página de su navegador para ver el resultado final.

# systemctl restart httpd
Apache Directory Listing

Paso2: Instalar soporte de PHP para Apache

7. Antes de instalar el soporte de lenguaje dinámico PHP para Apache, obtenga una lista completa de módulos y extensiones de PHP disponibles utilizando el siguiente comando.

# yum search php
List PHP Modules

8. Dependiendo del tipo de aplicaciones que desee utilizar, instale los módulos de PHP requeridos de la lista anterior, pero para un soporte básico de MySQL/MariaDB en PHP y PhpMyAdmin necesita instalar los siguientes módulos.

# yum install php php-mysql php-pdo php-gd php-mbstring
Install PHP Modules

9. Para obtener una lista completa de información sobre PHP desde tu navegador, crea un archivo info.php en la Raíz del Documento de Apache usando el siguiente comando, reinicia el servicio httpd y dirige tu navegador a la dirección http://server_IP/info.php.

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
List PHP Information

10. Si obtienes un error en PHP Fecha y Zona Horaria, abre el archivo de configuración php.ini, busca y descomenta la declaración date.timezone, añade tu ubicación física y reinicia el demonio de Apache.

# vi /etc/php.ini

Localiza y cambia la línea date.timezone para que se vea así, utilizando la lista de Zonas Horarias Soportadas por PHP.

date.timezone = Continent/City
Set PHP Timezone

Paso 3: Instalar y Configurar la Base de Datos MariaDB

11. La distribución RHEL cambió de MySQL a MariaDB para su sistema de gestión de bases de datos predeterminado. Para instalar la base de datos MariaDB, usa el siguiente comando.

# yum install mariadb-server mariadb
Install MariaDB on Linux

12. Después de que se instale el paquete MariaDB, inicia el demonio de la base de datos y usa el script mysql_secure_installation para asegurar la base de datos (establece una contraseña de root, desactiva el inicio de sesión remoto desde el root, elimina la base de datos de prueba y elimina usuarios anónimos).

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
# mysql_secure_installation
Manage MariaDB Service
Secure MariaDB in Linux

13. Para probar la funcionalidad de la base de datos, inicia sesión en MariaDB usando su cuenta de root y sal usando un quit.

mysql -u root -p
MariaDB > show databases;
MariaDB > quit
Connect MariaDB to Linux

Paso 4: Instalar PhpMyAdmin para gestionar MySQL

14. De forma predeterminada, los repositorios oficiales no proporcionan ningún paquete binario para la interfaz web de PhpMyAdmin. Si no te sientes cómodo utilizando la línea de comandos de MySQL para gestionar tu base de datos, puedes instalar el paquete PhpMyAdmin habilitando el repositorio remi con el siguiente comando.

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm  [On CentOS/RHEL 7]

Después de habilitar el repositorio remi, procede a instalar PhpMyAdmin.

# yum install phpmyadmin
Install PhpMyAdmin on Linux

15. A continuación, configura PhpMyAdmin para permitir conexiones desde hosts remotos editando el archivo phpmyadmin.conf, ubicado en el directorio conf.d, comentando las siguientes líneas.

# vi /etc/httpd/conf.d/phpMyAdmin.conf

Agrega la línea “Require all granted” debajo de la línea “Require local” como se muestra.

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>
Allow Remote PhpMyAdmin Access

16. Para poder iniciar sesión en la interfaz web de PhpMyAdmin, reinicia el servicio web de Apache y dirige tu navegador a la dirección URL.

# systemctl restart httpd

http://server_IP/phpmyadmin/
PhpMyAdmin Dashboard

Paso 5: Habilitar LAMP a nivel del sistema en Linux

17. Si necesitas que los servicios de MariaDB y Apache se inicien automáticamente después de reiniciar, emite los siguientes comandos para habilitarlos a nivel del sistema.

# systemctl enable mariadb
# systemctl enable httpd

Eso es todo lo que se necesita para una instalación básica de LAMP en distribuciones basadas en RHEL. La próxima serie de artículos relacionados con el stack LAMP discutirá cómo crear Hosts Virtuales, generar Certificados y Claves SSL, y agregar soporte para transacciones SSL al Servidor HTTP Apache.

Source:
https://www.tecmint.com/install-lamp-server-linux/