Instalación LAMP · 5 min read · Nov 29, 2025

Instalar Apache, PHP Y MySQL En CentOS 7 (LAMP)

Este tutorial muestra cómo puedes instalar un servidor web Apache2 en un servidor CentOS 7.0 con soporte para PHP5 (mod_php) y soporte para MySQL. LAMP es la abreviatura de Linux, Apache, MySQL, PHP.

1 Nota Preliminar

En este tutorial, utilizo el nombre de host server1.example.com con la dirección IP 192.168.0.100. Estos ajustes pueden diferir para ti, así que debes reemplazarlos donde sea apropiado.

Agregaré el repositorio EPEL aquí para instalar la última versión de phpMyAdmin de la siguiente manera:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*  
yum -y install epel-release

2 Instalando MySQL / MariaDB

MariaDB es un fork de MySQL del desarrollador original de MySQL, Monty Widenius. MariaDB es compatible con MySQL y he elegido usar MariaDB aquí en lugar de MySQL. Para instalar MySQL, instalamos MariaDB de la siguiente manera:

yum -y install mariadb-server mariadb

Luego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que el sistema arranca) y comenzamos el servidor MySQL:

systemctl start mariadb.service  
systemctl enable mariadb.service

Establecer contraseñas para la cuenta root de MySQL:

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

/usr/bin/mysql_secure_installation: línea 379: find_mysql_client: comando no encontrado

NOTA: ¡SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MariaDB EN USO DE PRODUCCIÓN!  ¡LEA CUIDADOSAMENTE CADA PASO!

Para iniciar sesión en MariaDB y asegurarla, necesitaremos la contraseña actual

para el usuario root.  Si acabas de instalar MariaDB, y

no has establecido la contraseña root aún, la contraseña estará en blanco,

así que solo debes presionar enter aquí.

Introduce la contraseña actual para root (presiona enter si no hay):

<–ENTER

OK, contraseña utilizada correctamente, continuando…

Establecer la contraseña root asegura que nadie pueda iniciar sesión en el usuario root de MariaDB

sin la autorización adecuada.

¿Establecer contraseña root? [Y/n]

Nueva contraseña:

<–yourmariadbpassword

Reingresa la nueva contraseña:

<–yourmariadbpassword

¡Contraseña actualizada con éxito!

Recargando tablas de privilegios..

… ¡Éxito!

Por defecto, una instalación de MariaDB tiene un usuario anónimo, permitiendo que cualquiera

inicie sesión en MariaDB sin tener que tener una cuenta de usuario creada para

ellos.  Esto está destinado solo para pruebas, y para hacer que la instalación

sea un poco más fluida.  Debes eliminarlos antes de pasar a un

entorno de producción.

¿Eliminar usuarios anónimos? [Y/n]

<–ENTER

… ¡Éxito!

Normalmente, solo se debería permitir que root se conecte desde ‘localhost’.  Esto

asegura que alguien no pueda adivinar la contraseña root desde la red.

¿Deshabilitar el inicio de sesión remoto de root? [Y/n]

<–ENTER

… ¡Éxito!

Por defecto, MariaDB viene con una base de datos llamada ‘test’ a la que cualquiera puede

acceder.  Esto también está destinado solo para pruebas, y debe ser eliminado

antes de pasar a un entorno de producción.

¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n]

<–ENTER

  • Eliminando base de datos de prueba…

… ¡Éxito!

  • Eliminando privilegios en la base de datos de prueba…

… ¡Éxito!

Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora

entrarán en efecto inmediatamente.

¿Recargar tablas de privilegios ahora? [Y/n]

<–ENTER

… ¡Éxito!

Limpiando…

¡Todo listo!  Si has completado todos los pasos anteriores, tu instalación de MariaDB

ahora debería estar segura.

¡Gracias por usar MariaDB!

[root@server1 ~]#

3 Instalando Apache2

CentOS 7 viene con apache 2.4. Apache2 está directamente disponible como un paquete de CentOS 7.0, por lo tanto, podemos instalarlo de esta manera:

yum -y install httpd

[root@server1 ~]# yum install httpd

Plugins cargados: fastestmirror, langpacks

Cargando velocidades de espejo desde el archivo de host en caché

  • base: ftp.plusline.de

  • extras: mirror.23media.de

  • actualizaciones: mirror.23media.de

El paquete httpd-2.4.6-17.el7.centos.1.x86_64 ya está instalado y es la última versión

Nada que hacer

[root@server1 ~]#

Por defecto, apache se instalará, si no, por favor instálalo como se muestra arriba

Ahora configura tu sistema para iniciar Apache al arrancar…

systemctl start httpd.service
systemctl enable httpd.service

En CentOS 7.0 se utiliza Firewall-cmd, así que lo personalizaré para permitir el acceso externo al puerto 80 (http) y 443 (https).

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

Ahora dirige tu navegador a http://192.168.0.100, y deberías ver la página de marcador de posición de Apache2:

4 Instalando PHP5

Podemos instalar PHP5 y el módulo Apache PHP5 de la siguiente manera:

yum -y install php

Debemos reiniciar Apache después:

systemctl restart httpd.service

5 Probando PHP5 / Obteniendo Detalles Sobre Tu Instalación de PHP5

La raíz del documento del sitio web predeterminado es /var/www/html. Ahora crearemos un pequeño archivo PHP (info.php) en ese directorio y lo llamaremos en un navegador. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.

vi /var/www/html/info.php

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.0.100/info.php):

Como ves, PHP5 está funcionando, y está funcionando a través del controlador Apache 2.0, como se muestra en la línea de API del servidor. Si desplazas hacia abajo, verás todos los módulos que ya están habilitados en PHP5. MySQL no está listado allí, lo que significa que aún no tenemos soporte para MySQL en PHP5.

6 Obteniendo Soporte de MySQL En PHP5

Para obtener soporte de MySQL en PHP, podemos instalar el paquete php-mysql. Es una buena idea instalar algunos otros módulos de PHP5 también, ya que podrías necesitarlos para tus aplicaciones. Puedes buscar los módulos de PHP5 disponibles de esta manera:

yum search php

Elige los que necesites e instálalos de esta manera:

yum -y install php-mysql

En el siguiente paso, instalaré algunos módulos comunes de PHP que son requeridos por sistemas CMS como Wordpress, Joomla y Drupal:

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

Ahora reinicia Apache2:

systemctl restart httpd.service

Ahora recarga http://192.168.0.100/info.php en tu navegador y desplázate hacia abajo a la sección de módulos nuevamente. Ahora deberías encontrar muchos nuevos módulos como curl, etc.:

7 Instalación de phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puedes gestionar tus bases de datos MySQL.
phpMyAdmin ahora se puede instalar de la siguiente manera:

yum install phpMyAdmin

Ahora configuramos phpMyAdmin. Cambiamos la configuración de Apache para que phpMyAdmin permita conexiones no solo desde localhost (comentando la sección ):

vi /etc/httpd/conf.d/phpMyAdmin.conf
[...]  
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

#
#   
#     # Apache 2.4
#     
#       Require ip 127.0.0.1
#       Require ip ::1
#     
#   
#   
#     # Apache 2.2
#     Order Deny,Allow
#     Deny from All
#     Allow from 127.0.0.1
#     Allow from ::1
#   
#



        Options none
        AllowOverride Limit
        Require all granted
  
  
[...] 

A continuación, cambiamos la autenticación en phpMyAdmin de cookie a http:

vi /etc/phpMyAdmin/config.inc.php
[...]
$cfg['Servers'][$i]['auth_type']     = 'http';    // Método de autenticación (config, http o basado en cookie)?
[...]

Reinicia Apache:

systemctl restart  httpd.service

Después, puedes acceder a phpMyAdmin en http://192.168.0.100/phpmyadmin/:

8 Enlaces

Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
CentOS: http://www.centos.org/
phpMyAdmin: http://www.phpmyadmin.net/

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.