Crear un servidor web en una instancia de AWS

Vamos a crear, para este ejemplo, un servidor Web en una instancia de Amazon Web Services con CentOS. Si todavía no tenéis ninguna instancia, podéis seguir nuestro tutorial sobre Como crear una instancia gratuita en Amazon Web Services (AWS).

Para que nuestra instancia trabaje como servidor web, tenemos que instalar el software necesario, además de asegurarnos que tenemos abiertos los puertos para HTTP y HTTPS (ver en nuestro post citado cómo abrir puertos utilizando los Grupos de Seguridad).

(Este pequeño tutorial se basa en los pasos indicados en la página de Amazon, con algunos cambios actualizados.)

Instalación y configuración del software necesario para el servidor web

El software que necesitamos es el Apache Web Server, el MySQL y el PHP. Abrimos la consola (ver post citado) y mediante la siguiente instrucción lo instalamos

sudo yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"

Tras cada instalación nos aseguramos de que no hay errores y de que vemos el mensaje de la consola Complete! o similiar.

Instalamos el paquete php-mysql:

sudo yum install -y php-mysql

E iniciamos el servidor Apache

sudo service httpd start

Si vemos un [OK] verde es que todo está correcto

Utilizamos el comando chkconfig para inicializar el servidor Apache con cada reinicio de máquina:

sudo chkconfig httpd on

Para probar que definitivamente estamos en la www, ponemos nuestro dns público o nuestra ip pública en un navegador, y si vemos la página de test es que todo está correcto.

Poder empezar a poner contenido en nuestra web en /var/www/html. Esta localización por defecto es del usuario root; tenemos que modificar los permisos y las propiedades. Para ello creareemos un grupo www y le daremos permisos y propiedades para el directorio /var/www, de manera que cualquier miembros de este grupo pueda trabajar allí. Añadimos el grupo:

sudo groupadd www

Añadimos nuestro usuario en el grupo:

sudo usermod -a -G www ec2-user

Salimos y volvemos a entrar para que el grupo se actualice:

exit
ssh…

Una vez hemos vuelto a entrar confirmamos el grupo:

groups

que nos dará:

ec2-user wheel www

Cambiamos la propiedad de /var/www y su contenido al grupo www:

sudo chown -R root:www /var/www

Cambiamos los permisos de /var/www y sus subdirectorios:

sudo chmod 2775 /var/www

Nos aseguramos de que cualquier nuevo directorio tendrá los mismos permisos:

find /var/www -type d -exec sudo chmod 2775 {} +
find /var/www -type f -exec sudo chmod 0664 {} +

Probamos que todo está correcto creando un fichero .php:

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

Y ahora volvemos a cargar en un navegador nuestra ip o dns / phpinfo.php.

¡Si vemos la página de php es que todo está correcto!

La eliminamos por razones de seguridad:

rm /var/www/html/phpinfo.php

 

Pasos para securizar nuestra instalación de mysql en el servidor

Inicializamos el servidor mysql:

sudo service mysqld start

Inicializamos la instalación segura de mysql:

sudo mysql_secure_installation

Y seguimos los pasos:

Introducimos una contraseña para el usurio root de mysql (simplemente ENTER, puesto que no hemos puesto ninguna).

Cambiamos la password: Y e introducimos la password

Quitamos el usuario anónimo: Y

Quitamos acceso externo de root: Y

Borramos la base de datos test: Y

Volvemos a generar las tablas de privilegios: Y

¡Y ya está!

 

 

2 thoughts on “Crear un servidor web en una instancia de AWS

Leave a Reply