Práctica 402. Despregue dun sitio web dinámico con Apache Server
Nesta práctica despregaremos unha aplicación dinámica, que utiliza arquitectura 2.0 vista na Unidade 1.
En concreto, utilizaremos unha aplicación con Apache Server, PHP e MySQL como servidor web, linguaxe backend e base de datos, respectivamente. Este stack coñécese como LAMP.
Requisitos
- VirtualBox.
- Máquina virtual DAPW.
- Mozilla Firefox.
- Conexión a Internet.
Apartado 1
Imos ver como podemos transferir ficheiros desde un equipo a outro utilizando SSH.
Realiza os seguintes pasos:
- Inicia a máquina virtual e conéctate por SSH dende o Visual Studio Code.
- Clona o repositorio
https://github.com/inf-fp/dapw-ud4-peliculas. - Na máquina virtual, crea o directorio
/var/www/peliculas/. - Abre unha terminal na máquina local. Utilizando
scp, copia o directorio descomprimido co código no directorio do equipo remoto/home/dadmin/. Non o copiamos directamente en/var/www/peliculas/por problemas cos permisos. Entrega captura da saída deste comando. - Move todos os ficheiros subidos a
/var/www/peliculas/. Recorda que necesitaras permisos de superusuario (utilizasudo). - Pon como propietario do directorio
/var/www/peliculas/e todos os ficheiros que conteña ao usuario e grupowww-data. - Executa o comando
ls -ladentro do directorio/var/www/peliculas/. Entrega captura da saída deste comando.
Apartado 2
Imos instalar o intérprete de PHP, así como aqueles paquetes necesarios para o seu funcionamento xunto a Apache Server. Ademais, crearemos un Virtual Host para poder servir a aplicación que subimos no anterior exercicio.
Realiza os seguintes pasos:
- Instala PHP e os paquetes necesarios para que conecte con Apache Server.
- Copia o ficheiro de configuración
estatico.confdo Virtual Host da práctica anterior. Este serviranos de template para crear o novo Virtual Host. O novo ficheiro terá de nomepeliculas.conf. - Modifica o ficheiro
peliculas.confpara que:- Se mostre para o dominio
peliculas.192-168-56-56.nip.io. - Non utilice ningún alias.
- O ficheiro logs de acceso sexa
/var/log/apache2/pelis-access.log. - Busque a aplicación web no directorio
/var/www/peliculas/.
- Se mostre para o dominio
- Entrega capturas do ficheiro de definición de Virtual Host anterior.
- Habilita o novo Virtual Host e recarga a configuración de Apache.
- Desde un navegador, entra na dirección
http://peliculas.192-168-56-56.nip.io/ola.php. Entrega capturas da web mostrada. O navegador pode ser que che mostre unha mensaxe de que o sitio non é confiable. Preme en Ver o sitio de igual maneira.
Apartado 3
No apartado anterior tan só probamos o funcionamento de Apache xunto PHP co ficheiro ola.php. Pero a aplicación que despregaches permite engadir películas que viches. Pero, para o almacenamento, utilizamos a base de datos MariaDB instalada na Unidade 2. Imos configurar unha base de datos, conectala coa aplicación e, dese xeito, ter a nosa aplicación funcionando completamente.
Realiza os seguintes pasos:
- Verifica que a base de datos MariaDB se está executando. No caso de non tela instalada, realiza a instalación.
- Crea unha nova base de datos
cinee crea un novo usuarioapachepara a base de datoscine.
Unha vez que contamos cunha base de datos, teremos que crear a estrutura desta. Farémolo mediante un script de SQL.
- Conéctate a través do CLI ou da extensión SQLTools de VSC.
- Nos ficheiros do proxecto hai un script SQL (
create_tables.sql). Executa o contido do ficheiro. Realiza captura onde se vexa a táboa creada.
Agora debemos configurar a nosa aplicación para que se conecte á base de datos que creamos. Para iso, utilizaremos o ficheiro .env que trae incorporada a aplicación.
- Abre o ficheiro
.envno servidor web. Ten coidado porque os ficheiros que comezan en Linux por.son ficheiros ocultos. Cando se realizan copias de varios ficheiros, xeralmente os arquivos ocultos non se copian, polo que pode ser que non o teñas enviado o servidor ou copiado no directorio correspondente. - Modifica as variables que aparecen no ficheiro coas que se proporcionan no dashboard de Supabase. Realiza captura do contido deste ficheiro.
- Accede agora a
http://peliculas.192-168-56-56.nip.io/. Accede ao menú para engadir unha nova película. Engade unha película calquera. Realiza captura do contido da táboapeliculasdesde o dashboard.
Apartado 4
Neste último apartado veremos a directiva Files de Apache Server. Esta é bastante importante por temas de seguridade.
Abre a URL http://peliculas.192-168-56-56.nip.io/.env.
Podes ver que se mostran os datos de conexión á base de datos. Con estes datos calquera podería realizar modificacións na nosa base de datos. Polo que é un erro moi grande de seguridade.
Por defecto, Apache non bloquea os ficheiros que comezan por punto (.), aínda que estes sexan ocultos.
Para solucionalo, podemos engadir a directiva Files dentro da directiva Directory ao ficheiro de definición do Virtual Host. A seguinte directiva indica que ningén ten permisos para ver este ficheiro.
<Directory /var/www/peliculas>
Options -Indexes +FollowSymLinks
Require all granted
<Files ".env">
Require all denied
</Files>
</Directory>
Realiza os seguintes pasos:
- Modifica a definición do Virtual Host para que non se permite o acceso ao ficheiro
.env. - Recarga a configuración de Apache.
- Nunha ventá privada, accede á URL
http://peliculas.192-168-56-56.nip.io/.env. Entrega capturas do que mostra o navegador.