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
.
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
o conf
, y debe terminar con la extensión .conf
.
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 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.
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 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 https://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 mysqlsecureinstallation
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.
mysqlsecureinstallation
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, y SuContraseñ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.
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.ini
errorreporting = ECOMPILEERROR|ERECOVERABLEERROR|EERROR|ECOREERROR
errorlog = /var/log/php/error.log
maxinput_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
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.
Documentación PHP.ode.com/docs/websites/lamp/lamp-on-centos-7 "LAMP en CentOS 7") de Linode.