Práctica: Instalación/migración de aplicaciones web PHP
Descripción
Escenario
Crea un escenario con vagrant. kvm o openstack con las siguientes características:
- Dos máquinas virtuales que se llamen
servidor_web_tunombre
yservidor_bd_tunombre
. - Las máquinas estarán conectadas a una red que les proporcione salida a internet.
- Las dos máquinas están conectadas entre si por una red muy aislada.
Tarea 1: Instalación de un CMS PHP en mi servidor local
- Selecciona un CMS escrito en PHP para desplegarlo en nuestra infraestructura. No se puede elegir ni WordPress (que lo hemos visto en un vídeo, ni NextCloud que lo instalaremos a continuación).
- Configura en la máquina
servidor_web_tunombre
un servidor web apache2 que ejecute PHP, con un VirtualHost, para que el CMS sea accesible desde la dirección:www.nombrealumno.org
. - Configura en la máquina
servidor_bd_tunombre
una base de datos. Crea un usuario con privilegios sobre la base de datos donde se van a guardar los datos del CMS. Configura la base de datos para que permita conexión desde la otra máquina por la red muy aislada, es decir la máquinaservidor_web_tunombre
se conecta aservidor_bd_tunombre
usando su ip que tiene configurada en la red privada muy aislada. - Descarga el CMS seleccionado y realiza la instalación.
- Realiza una configuración mínima de la aplicación (cambia la plantilla, crea algún contenido, …)
- Instala un módulo para añadir alguna funcionalidad al CMS.
Entrega
- Entrega la configuración del virtualhost.
- La configuración de resolución estática.
- Una captura de pantalla donde se vea el acceso a la aplicación.
- Indica que plugin has instalado.
Tarea 2: Instalación de un CMS NextCloud
- Instala el CMS PHP NextCloud en otro host virtual con el que accedemos con el nombre
cloud.nombrealumno.org
.
Entrega
- Una captura de pantalla donde se vea el acceso a la aplicación.
Tarea 3: Migración a tu VPS
- Configura en tu VPS un servidor LEMP.
- Configura registros DNS en tu servidor DNS de tipo CNAME para que el nombre
www
ycloud
apunten al nombre de vuestro servidor. - Realiza la migración de tus aplicaciones web a tu VPS. La primera aplicación debe ser accesible desde la URL
www.tudominio.algo
, y el NextCloud con la URLcloud.tudominio.algo
. - Instala en un ordenador el cliente de NextCloud y realiza la configuración adecuada para acceder a “tu nube”.
Entrega
- Documenta de la forma más precisa posible cada uno de los pasos que has dado para migrar una de las dos aplicaciones.
- Las URL de acceso a las aplicaciones.
- Capturas de pantalla donde se demuestre que esta funcionando el cliente de NextCloud.
Tarea 4: Configuración de HTTPS en el VPS
Vamos a configurar el protocolo HTTPS para el acceso a nuestras aplicaciones, para ello tienes que tener en cuenta los siguiente.
- Vamos a utilizar el servicio letsencrypt para solicitar los certificados de nuestras páginas.
- Comprueba que el navegador tiene el certificado de Let’s Encrypt.
- Solicita un certificado en Let’s Encrypt. Tienes dos opciones:
- Solicitar dos certificados para los nombres que tienes:
www.tudominio.algo
ycloud.tudominio.algo
. - Solicitar un certificado wildcard
*.tudominio.algo
que te sirve para todos tus nombres. (Esta opción te dará más puntos).
- Solicitar dos certificados para los nombres que tienes:
- Utiliza dos ficheros de configuración de nginx, para cada virtualhost: uno para la configuración del virtualhost HTTP y otro para la configuración del virtualhost HTTPS.
- Realiza una redirección o una reescritura para que cuando accedas a HTTP te redirija al sitio HTTPS.
- Comprueba que se ha creado una tarea cron que renueva el certificado cada 3 meses.
- Comprueba que las páginas son accesibles por HTTPS y visualiza los detalles del certificado que has creado.
- Modifica la configuración del cliente de NextCloud para comprobar que sigue en funcionamiento con HTTPS.
Entrega
- Captura de pantalla para comprobar que el navegador tiene el certificado de Let’s Encrypt.
- ¿Qué opción has elegido? ¿Qué pruebas realiza Let’s Encrypt para asegurar que somos los administrados del sitio web al elegir esa opción?
- Entrega la configuración de nginx (los dos ficheros de cada virtualhost) para que funcione HTTPS y la redirección.
- Entrega la configuración del cron donde se ve que se hará la renovación cada 3 meses.
- Captura de pantalla accediendo a las dos páginas con https. Captura de pantalla con los detalles del certificado.
- Captura de pantalla donde se vea el cliente de NextCloud conectado por https.