Servidor Web Apache, php y MySQL en AWS EC2 Ubuntu 18.04

Amazon Web Services (AWS) es (desde mi punto de vista) uno de los mejores proveedores de Nube, con una gran cantidad de servicios que se adapta a lo que necesites.

En este post realizaré la instalación de Apache, PHP, MySQL server y phpMyAdmin en Ubuntu Server 18.04. En mi caso lo hice en una instancia de AWS EC2, pero los comandos sirven en cualquier instalación de Ubuntu (o cualquier distribución de Linux basada en Debian).

Los comandos ejecutados sirven únicamente para poner en marcha los servicios, si lo implementarás en un entorno de producción te recomiendo buscar algunas configuraciones «extra» que permita hacer un hardening de tu servidor.

Actualización de la lista de paquetes

$sudo apt-get update

Instalación del servidor web Apache

$sudo apt-get install apache2

Instalación de php

$sudo apt-get install php libapache2-mod-php php-mysql

Instalación de MySQL

$sudo apt-get install mysql-server
$sudo mysql_secure_installation

Instalación de phpMyAdmin

$sudo apt-get install phpmyadmin php-mbstring php-gettext
$sudo phpenmod mbstring

Configuración para uso de .htaccess de tu aplicación

Si tu aplicación utiliza su propio archivo .htaccess, deberás habilitar el módulo «rewrite» del siguiente modo:

$sudo a2enmod rewrite

Y editar el archivo de configuración del sitio con tu editor favorito, si utilizas el archivo por defecto:

$nano /etc/apache2/sites-available/000-default.conf

Agregando las siguientes líneas:

<VirtualHost *:80>
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Reinicio del servidor

Tras finalizar las configuraciones o después de hacer cualquier tipo de modificación es recomendable reiniciar el servidor web.

$service apache2 restart

Recomendaciones

Con eso tendrás listo tu servidor web Apache, con php, MySQL y phpMyAdmin. Considero que no es recomendable instalar phpMyAdmin en un ambiente de producción, así que debes tener cuidado con eso.

Además te recomiendo analizar alternativas como Nginx o PostgreSQL, pero no solo lo uses porque está de moda, busca sus ventajas y desventajas y analiza lo que mejor se ajuste a tus requerimientos.

Como digo siempre, este post no trae nada del otro mundo y hay millones de sitios donde encontrarás lo mismo o inclusive la instalación de cada tecnología con mayor detalle, recomiendo los tutoriales de digitalocean, los encuentro muy completos y útiles. Tal vez puedas considerar los siguientes enlaces: