Introducción
En el mundo del desarrollo web, configurar una pila LAMP es una habilidad fundamental que todo desarrollador debería poseer. La pila LAMP, que significa Linux, Apache, MySQL y PHP, proporciona una plataforma potente y versátil para desarrollar y alojar aplicaciones web. Esta guía lo guiará a través del proceso de instalación de una pila LAMP en Amazon Linux 2, una opción popular para muchos desarrolladores debido a su estabilidad e integración con los servicios de AWS.
Requisitos previos
Antes de comenzar, asegúrese de tener:
- Una cuenta de AWS
- Una instancia en ejecución de Amazon Linux 2
- Acceso SSH a su instancia
Paso 1: actualiza tu sistema
Primero, conéctese a su instancia de Amazon Linux 2 a través de SSH. Una vez que haya iniciado sesión, es una buena idea actualizar su sistema con los paquetes más recientes. Ejecute el siguiente comando:
sudo yum update -y
Paso 2: instale Apache
Apache es un software de servidor web ampliamente utilizado que ofrecerá su aplicación web a los usuarios. Para instalar Apache, ejecute:
sudo yum install httpd -y
Una vez completada la instalación, recomendamos iniciar el servicio Apache y habilitarlo para que se inicie al inicio:
sudo systemctl start httpd
sudo systemctl enable httpd
Puede verificar que Apache se esté ejecutando accediendo al DNS público o a la dirección IP de su instancia en un navegador web. Deberías ver la página de pruebas de Apache.
Paso 3: Instale MySQL (MariaDB)
Amazon Linux 2 utiliza MariaDB, una bifurcación de MySQL desarrollada por la comunidad, como sistema de administración de bases de datos predeterminado. Para instalar MariaDB, use el siguiente comando:
sudo yum install mariadb-server -y
Similar a Apache, inicie y habilite el servicio MariaDB:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Para estar seguro, ejecute el script mysql_secure_installation:
sudo mysql_secure_installation
Siga las instrucciones que aparecen en pantalla para configurar su instalación de MariaDB, incluida la configuración de una contraseña de root y la eliminación de usuarios anónimos.
Paso 4: instalar PHP
PHP es un lenguaje de programación de servidores utilizado para el desarrollo web. Para instalar PHP junto con algunas extensiones comunes, ejecute:
sudo yum install php php-mysqlnd php-pdo php-gd php-mbstring -y
Después de instalar PHP, debes reiniciar Apache para aplicar los cambios:
sudo systemctl restart httpd
Para probar su instalación de PHP, cree un archivo PHP de prueba en su directorio raíz web:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/phpinfo.php
Vaya a http://<your-public-dns-or-ip>/phpinfo.php en un navegador web. Deberías ver la página de información de PHP.
Paso 5: protege tu pila
La seguridad es primordial. Asegúrese de que su grupo de seguridad de AWS permita el tráfico solo en los puertos necesarios (80 para HTTP, 443 para HTTPS y, opcionalmente, 22 para SSH). Considere configurar un firewall con firewalld o iptables y mantenga siempre su software actualizado.
Paso 6: cree un host virtual (opcional)
Un host virtual le permite servir varios sitios web desde un único servidor Apache. Crearemos un host virtual para un sitio web de ejemplo llamado example.com.
Crea un directorio para tu sitio web
Primero, cree un directorio para guardar los archivos de su sitio web. Reemplace example.com con su nombre de dominio real.
sudo mkdir -p /var/www/example.com/public_html
Establecer permisos
A continuación, cambie los permisos para asegurarse de que los archivos de su sitio web sean accesibles para el servidor web Apache.
sudo chown -R apache:apache /var/www/example.com/public_html
sudo chmod -R 755 /var/www
Crear una página de muestra
Cree un archivo HTML simple para probar la configuración de su host virtual.
echo "<h1>Welcome to example.com!</h1>" | sudo tee /var/www/example.com/public_html/index.html
Cree el archivo de host virtual de Apache
Para que Apache proporcione este contenido, debe crear un archivo de host virtual para ejemplo.com.
sudo vi /etc/httpd/conf.d/example.com.conf
Añade la siguiente configuración, adaptándola a tu nombre de dominio y rutas:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
Reiniciar Apache
Aplique los cambios reiniciando Apache.
sudo systemctl restart httpd
Su host virtual ahora está configurado. Ir a http://example.com debería mostrar la página de ejemplo que creamos.
Paso 7: Protéjase con Let's Encrypt
Proteger su sitio web con HTTPS es esencial para la seguridad y el SEO. Let's Encrypt proporciona certificados SSL gratuitos. Aquí se explica cómo configurar uno para su nuevo host virtual.
Instalar Certbot
Certbot es una herramienta que automatiza el proceso de obtención y renovación de certificados SSL Let's Encrypt.
sudo yum install certbot python3-certbot-apache -y
Ejecutar Certbot
Ejecute Certbot para obtener automáticamente un certificado SSL y configure su host virtual para usarlo.
sudo certbot --apache -d example.com -d www.example.com
Sigue las instrucciones en la pantalla. Certbot modificará la configuración de Apache para usar el certificado SSL y recargará automáticamente el servidor.
Configurar la renovación automática
Los certificados Let's Encrypt son válidos por 90 días. Certbot puede renovarlos automáticamente. Pruebe la renovación automática con:
sudo certbot renew --dry-run
Si este comando se ejecuta sin errores, la renovación automática está configurada correctamente.
Conclusión
Ha instalado con éxito una pila LAMP en Amazon Linux 2. Esta configuración proporciona una base sólida para alojar aplicaciones web. Desde aquí puede implementar sus aplicaciones, explorar configuraciones más avanzadas y comenzar a desarrollar con una de las pilas más populares en desarrollo web.
Recuerde, administrar un servidor web y sitios web es un proceso continuo. Actualice su software con regularidad, supervise el rendimiento de su servidor y asegúrese de que sus aplicaciones sean seguras. Con estos pasos, estará en el buen camino para gestionar con éxito una presencia web sólida y segura.