¿Cómo instalar LAMP en CentOS 7?

Actualizado el 1 de septiembre, 2016. Por BlueHosting.

El sistema de infraestructura LAMP es un grupo de software de código abierto que utiliza las tecnologías Linux, Apache, MySQL y PHP, éstas forman el acrónimo LAMP. La combinación de estas tecnologías se utiliza para levantar y mantener en ejecución un servidor Web. Tomando en cuenta que ya el servidor ejecuta CentOS 7, solo falta la instalación del resto de las tecnologías, que explicamos a continuación.

Nota
Esta guía está escrita para un usuario no root. Los comando que requieren privilegios elevados están precedidos por sudo.

Antes de comenzar

  1. Asegúrese de seguir nuestra guía de seguridad y de configuración de su servidor CentOS. Además será necesario que tenga establecido un hostname.
    Para verificar su hostname puede ejecutar:

    hostname  
    hostname -f
    

    El primer comando debería mostrar el hostname corto, y el segundo debería mostrar el nombre de dominio completamente calificado (o FQDN, por sus siglas en inglés).

  2. Actualice su sistema:

    sudo yum update
    

Apache

Instalación y configuración

  1. Instale Apache 2.4:

    sudo yum install httpd
    
  2. Edite el archivo httpd.conf y agregue el siguiente código para desactivar la opción KeepAlive y ajustar la configuración de uso de recursos. Los ajustes mostrados a continuación son un buen comienzo para un servidor con 2GB de memoria RAM:
    Nota: Antes de cambiar cualquier archivo de configuración, se recomienda que haga un respaldo de dicho archivo. Para hacerlo utilice:

    cp /etc/httpd/conf/httpd.conf ~/httpd.conf.backup
    

    Extracto del archivo: /etc/httpd/conf/httpd.conf

    KeepAlive Off
    
    <IfModule prefork.c>
        StartServers        4
        MinSpareServers     20
        MaxSpareServers     40
        MaxClients          200
        MaxRequestsPerChild 4500
    </IfModule>
    

    Esta configuración también puede ser añadida a un archivo separado si así lo desea. El archivo debe estar ubicado en los directorios conf.module.d o conf, y debe terminar con la extensión .conf.

Configurar los hosts virtuales basados en nombre

Hay distintas formas de configurar hosts virtuales; sin embargo, el siguiente método es el más recomendado.

  1. Dentro del directorio conf.d cree el archivo vhost.conf para almacenar sus configuraciones de host virtual. Puede usar el ejemplo a continuación como una plantilla para su sitio web "ejemplo.com"; recuerde cambiar los valores necesarios para su dominio:
    Extracto del archivo: /etc/httpd/conf.d/vhost.conf

    NameVirtualHost *:80
    
    <VirtualHost *:80>
        ServerAdmin webmaster@ejemplo.com
        ServerName ejemplo.com
        ServerAlias www.ejemplo.com
        DocumentRoot /var/www/ejemplo.com/public_html/
        ErrorLog /var/www/ejemplo.com/logs/error.log
        CustomLog /var/www/ejemplo.com/logs/access.log combined
    </VirtualHost>
    

    Se pueden agregar dominios adicionales al archivo vhost.conf según sea necesario.
    Nota: Las entradas ErrorLog y CustomLog son sugeridas para registrar logs de manera más completa, pero no son obligatorias. Si están definidas (como se muestra arriba), los directorios de logs deben ser creados antes de reiniciar su servidor Apache.

  2. Cree los directorios a los cuales se hizo referencia arriba:

    sudo mkdir -p /var/www/example.com/public_html
    sudo mkdir /var/www/example.com/logs
    
  3. Habilite Apache para que arranque automáticamente al iniciar el servidor, y reinicie el servicio para que los cambios anteriores surtan efecto:

    sudo systemctl enable httpd.service
    sudo systemctl restart httpd.service
    

Ahora puede visitar su dominio y probar el servidor Apache: podrá visualizar una página por defecto de Apache.

MySQL / MariaDB

Instalación y configuración

MySQL es remplazado por MariaDB en CentOS 7. MariaDB es una base de datos muy popular que puede remplazar a MySQL.

Nota:
Si usted prefiere usar una base de datos MySQL en CentOS 7, deberá agregar los repositorios necesarios ejecutando el siguiente comando:

sudo yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
  1. Instale el paquete del servidor MariaDB:

    sudo yum install mariadb-server
    
  2. Configure MariaDB para que arranque al iniciar el servidor, e inicie el demonio por primera vez:

    sudo systemctl enable mariadb.service
    sudo systemctl start mariadb.service
    
  3. Ejecute mysql_secure_installation para asegurar MariaDB. Se le dará la opción de cambiar la contraseña root de MariaDB, eliminar cuentas de usuario anónimas, deshabilitar inicios de sesión como root fuera del localhost, eliminar bases de datos de prueba y volver a cargar privilegios. Se recomienda responder yes (sí) a todas las opciones.

    mysql_secure_installation
    

Crear una base de datos MySQL/MariaDB

  1. Inicie sesión en MariaDB:

    mysql -u root -p
    

    Se le pedirá la contraseña root de MariaDB que creó al momento de la instalación. Una vez que haya ingresado, tendrá acceso a la línea de comandos de MariaDB.

  2. Cree una nueva base de datos y un usuario con permisos para utilizarla:

    create database datosweb;
    grant all on datosweb.* to 'usuarioweb' identified by 'SuContraseña';
    

    En el ejemplo arriba, datosweb es el nombre de la base de datos, usuarioweb es el usuario, y SuContraseña representa una contraseña sólida y segura.

  3. Salga de la línea de comandos de MariaDB usando:

    quit
    

Una vez que tenga Apache y MariaDB instalados, está listo para continuar e instalar PHP para proporcionar soporte de scripting en sus páginas web.

PHP

Instalación y configuración

  1. Instale PHP:

    sudo yum install php php-pear
    

    Si desea instalar soporte MySQL para PHP, también debe instalar el paquete php-mysql.

    sudo yum install php-mysql
    
  2. Edite el archivo /etc/php.ini para mejorar los mensajes, los registros de errores y el desempeño. Estas modificaciones son un buen punto de partida para un servidor con 2GB de memoria RAM:
    Extracto del archivo: /etc/php.ini

    error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
    error_log = /var/log/php/error.log
    max_input_time = 30
    

    Nota: Asegúrese de que las líneas anotadas arriba no estén comentadas. Una línea de comentario comienza con punto y coma (;).

  3. Cree un directorio de logs para PHP y otorgue la propiedad del directorio al usuario Apache:

    sudo mkdir /var/log/php
    sudo chown apache /var/log/php
    
  4. Vuelva a cargar Apache:

    sudo systemctl reload httpd
    

Recursos adicionales

Para complementar la información aquí presentada puede consultar los siguientes recursos. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos certificar su actualidad o precisión.

¿QUÉ DESEAS SABER?

Intentaremos leer tu mente...