AWS: EC2 con Ubuntu-Apache-PHP-MySQL

Dentro de la capa gratuita de Amazon Web Services podemos montar un servidor basado en sus maquina EC2, vamos a ver como montar un servidor Apache con PHP y MySQL.

Lo primero es crear la instancia EC2, lo primero que nos va a pedir es seleccionar una configuración inicial, dentro de la capa gratuita podemos elegir varias instancias de Linux, para este tutorial vamos a usar un servidor Ubuntu, dejamos el resto de configuraciones por defecto, para un servidor web recomiendo seleccionar el tipo de almacenamiento EBS, ya que es mas barato que una unidad SSD una vez expire la capa gratuita.

Una vez creada y lanzada la instancia, accedemos a su “Security Group“, simplemente pulsando sobre este en la ultima columna de nuestra instancia. En la pestaña “Inbound“, tenemos que añadir al menos el tipo HTTP, para poder acceder al servidor Apache.

Luego vamos a “Elastics IPs” y creamos una nueva IP asociada a nuestra instancia, las IPs son gratuitas siempre que estén asociadas a una instancia.

Ahora tenemos que conectar a la instancia usando la IP publica de la instancia recién creada, para ello hay que usar la clave “.pem” que descargamos al crear la instancia y conectar con SSH usando el host user_name@public_dns_name, para las maquinas Ubuntu, el usuario por defecto es “ubuntu.

Una vez conectados, lo primero es actualizar Ubuntu:

Instalar Apache:

Activar el modulo “rewrite“:

Y para activar AllowOverride, editamos la configuración de Apache para añadir “AllowOverride All” en el directorio “/var/www/”:

Instalar PHP5:

Ahora podemos comprobar que todo funciona correctamente conectando directamente a la ip publica de la instancia desde el navegador.

Instalamos MySQL:

Y PHPMyAdmin:

Para poder acceder a PHPMyAdmin desde el navegador usamos el siguiente comando, para que esté disponible desde la raiz del servidor Apache:

Ahora usando la IP publica de la instancia mas /phpmyadmin, desde el navegador, podemos administrar MySQL.

Asignar un nombre de dominio

Para no tener que estar usando la ip publica para conectar al servidor, asignar un dominio es muy fácil teniendo nuestra IP elástica, solo tenemos que editar el archivo DNS de nuestro dominio y asignar un registro de tipo A (host) a la IP elástica asociada a nuestra instancia.

Para asignar un dominio a una carpeta concreta dentro del servidor, tenemos que editar el fichero /etc/apache2/apache2.conf, por ejemplo con nano:

Añadimos lo siguiente al final de este fichero:

Opcionalmente se puede añadir configuración extra:

Para que los cambios tengan efecto es necesario reiniciar el servidor Apache: