¿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
-
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).
-
Actualice su sistema:
sudo yum update
Apache
Instalación y configuración
-
Instale Apache 2.4:
sudo yum install httpd
-
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
oconf
, 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.
-
Dentro del directorio
conf.d
cree el archivovhost.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.confNameVirtualHost *: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 entradasErrorLog
yCustomLog
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. -
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
-
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
-
Instale el paquete del servidor MariaDB:
sudo yum install mariadb-server
-
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
-
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 responderyes
(sí) a todas las opciones.mysql_secure_installation
Crear una base de datos MySQL/MariaDB
-
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.
-
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, ySuContraseña
representa una contraseña sólida y segura. -
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
-
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
-
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.inierror_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 (
;
). -
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
-
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.
- Sitio web oficial de Linux CentOS.
- Documentación oficial de Apache.
- Documentación oficial de MariaDB.
- Documentación PHP.ode.com/docs/websites/lamp/lamp-on-centos-7 "LAMP en CentOS 7") de Linode.