##CREAR TRES MÁQUINAS VIRTUALES EN VIRTUAL BOX, CADA UNA DE ELLAS VA A SER UN TIPO DE SERVIDOR: UN SERVIDOR DE BASE DE DATOS:CentOS como SO (que va a ser el más pesado) con los SGBD (Bases de datos) PostgreSQL y MariaDB UN SERVIDOR DE APPS: Ubuntu Server (SO) que debe tener Apache Server(Servidor Web o HTTP) y Apache Tomcat (Servidor de aplicaciones) UN SERVIDOR DE DATOS (DATA): Debian (SO) Para ello, lo primero es importar el .OVA (en VirtualBox) que es un archivo que trae consigo la máquina virtual y su SO correspondiente ## Páginas para la configuración de Apache Server y Apache Tomcat en UBUNTU SERVER ## https://linuxize.com/post/how-to-install-tomcat-9-on-ubuntu-18-04/ https://medium.com/@charinin/setting-java-home-environment-variable-in-ubuntu-e355c80e5b6c https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04-es https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804-es https://www.sololinux.es/instalar-php-7-4-en-ubuntu-con-apache/ // Instalación y Configuración de Apache Server // Apache está disponible en los repositorios de software predeterminados de Ubuntu, lo que permite instalarlo con las herramientas convencionales de administración de paquetes. 1) Primero se actualiza el indice de paquetes locales para que reflejen los últimos cambios: sudo apt update 2) Se instala el paquete apache2: sudo apt install apache2 Una vez se confirma la instalación, apt instalará Apache y todas las dependencias necesarias. 3) Se ajusta el firewall Antes de probar Apache, es necesario modificar los ajustes de firewall para permitir el acceso externo a los puertos web predeterminados. Suponiendo que siguió las instrucciones de los requisitos previos, debería tener un firewall UFW configurado para que restrinja el acceso a su servidor. Durante la instalación, Apache se registra con UFW para proporcionar algunos perfiles de aplicación que pueden utilizarse para habilitar o deshabilitar el acceso a Apache a través del firewall. UFW* --> Uncomplicated FireWall, es un cortafuegos diseñado para ser de fácil uso desarrollado por Ubuntu. Está escrito en Python y es un programa para GNU/Linux (console application). Durante la instalación, Apache se registra con UFW para proporcionar algunos perfiles de aplicación que pueden utilizarse para habilitar o deshabilitar el acceso a Apache a través del firewall. 4) Se enumeran los perfiles de aplicación ufw escribiendo este comando: sudo ufw app list Así se obtienen los perfiles de aplicación siguientes: Available applications: Apache Apache Full Apache Secure OpenSSH Esto nos indica que hay tres perfiles disponibles para Apache: Apache: este perfil abre solo el puerto 80 (tráfico web normal no cifrado) Apache Full: este perfil abre el puerto 80 (tráfico web normal no cifrado) y el puerto 443 (tráfico TLS/SSL cifrado) Apache Secure: este perfil abre solo el puerto 443 (tráfico TLS/SSL cifrado) Se recomienda habilitar el perfil más restrictivo, que de todos modos permitirá el tráfico que configuró. Debido a que en esta guía aún no configuramos SSL para nuestro servidor, solo deberemos permitir el tráfico en el puerto 80: sudo ufw allow 'Apache' Para verificar el cambio se escribe este comando: sudo ufw status El resultado proporcionará una lista de tráfico HTTP que se permite: Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6) Como indica el resultado el perfil se activó para permitir el acceso al servidor web Apache 5) Comprobar su servidor web (su estado y demás) sudo systemctl status apache2 Output ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 29435 (apache2) Tasks: 55 (limit: 1137) Memory: 8.0M CGroup: /system.slice/apache2.service ├─29435 /usr/sbin/apache2 -k start ├─29437 /usr/sbin/apache2 -k start └─29438 /usr/sbin/apache2 -k start Este resultado confirma que el servicio se inició correctamente. Sin embargo, la mejor forma de comprobarlo es solicitar una página de Apache. Inmediatamente después se introduce el comando: sudo apt install software-properties-common Se añade un repositorio nuevo: sudo add-apt-repository ppa:ondrej/php Se presiona ENTER para continuar con el proceso Se vuelve a hacer un update para actualizar el sistema después de que se le hayan añadido los repositorios. apt update Ahora se copian todas las librerias de php y un módulo de php que está dentro de Apache. Entonces se tira este comando: apt install php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-mysql php7.4-gd php7.4-tidy php7.4-xmlrpc (con el comando de mysql lo que te permite es que a través de Apache se pueda acceder a la base de datos de MariaDB osea mysql) Se eliminan las librerias de recode e imagick de la linea de comandos porque seguramente en esta version de php no vienen integradas. Apache es un servidor web que tiene por dentro una carpeta de módulos. Entonces para hacer compatible Apache con el lenguaje de programación de php es necesario instalar los módulos de php para Apache. Después lo que hay que hacer es utilizar el archivo de configuración de php (php.ini), que está en la carpeta apache2, en dicho archivo están todas las directivas de configuración /módulos (como el zlib que se usa mucho para coger un fichero, arrastrarlo y se carga en el servidor o para cargar un fichero) *Es importante que el servidor que utilices sea compatible con los módulos de tu programa/aplicación web, sino no va a funcionar correctamente* sudo nano /etc/php/7.4/apache2/php.ini --> Este archivo es el que se crea en apache2 con todas las directivas (GNU nano 4.8) como ya se ha dicho anteriormente. En dicho archivo de configuración, que es lo bueno que tiene php es que se pueden configurar las excepciones para que aparezcan en pantalla arriba los errores (excepciones) o problemas con algún módulo/directiva o lo que sea y lo detectemos mejor para poder solucionarlo. El directorio donde se encuentra instalado apache2 es etc/apache2 La carpeta apache2 va a tener el archivo de configuración de apache2.conf, y lo más importante que son los mods y sites. mods*:nos indican los módulos que tienen activados/disponibles(available) o habilitados(enabled) apache2. sites*: Nos va a permitir tener varias aplicaciones web activadas con el mismo servidor. ///La idea de Aurelio es configurar todo correctamente para que cuando sepamos añadir host virtuales (VirtualHosts) es montar un servidor de Apache y cada alumno con un virtualhost creado como si tuviese cada uno una página web y así cada uno tiene su ruta y su carpeta para trabajar. Puede acceder a la página de destino predeterminada de Apache para confirmar que el software funcione correctamente mediante su dirección IP: Si no conoce la dirección IP de su servidor, puede obtenerla de varias formas desde la línea de comandos. Se escribe esto en la línea de comandos de su servidor: hostname -I Se obtienen algunas direcciones separadas por espacios. Puede probar cada uno en el navegador web para determinar si funcionan. Otra opción es utilizar la herramienta Icanhazip, que debería proporcionarle su dirección IP pública como aparece en otra ubicación en Internet: curl -4 icanhazip.com Cuando se tiene la dirección IP de su servidor, se introduce en la barra de direcciones de su navegador: http://your_server_ip Debería ver la página web predeterminada de Apache en Ubuntu 20.04 Esta página indica que Apache funciona correctamente. También incluye información básica sobre archivos y ubicaciones de directorios importantes de Apache. 6) Administrar el proceso de Apache. Una vez el servidor web está listo y en funcionamiento, se repasan algunos comandos de administración básicos con systemctl. Dentro del index.php se escribe el siguiente código básico de prueba: //Este código para imprimir por pantalla un Hola mundo <?php echo "Hola mundo"; ?> //Este código para mostrar el archivo con todos los módulos de configuración de php (php version 7.4.11) que tenemos que comprobar que nada cambia cuando pasemos de un entorno de desarrollo a un entorno de producción. <?php phpinfo(); ?> **** PARA ACCEDER AL ARCHIVO HTML DE LA PAGINA DE APACHE2 QUE ABRIMOS EN EL NAVEGADOR CUANDO METEMOS LA IP DE NUESTRO SERVER Una vez está apache2 instalado se tiene que probar que apache puede ejecutar código de php, para ello tenemos que crear un index.php con nano index.php, por lo que se elimina para ello primero el index.html con el comando rm index.html* Primero se accede a la carpeta www con cd /var/www/ que tiene dentro un html, por lo que nos colocamos dentro de este html mediante cd html/ que tiene a su vez un index.html por lo que vamos a acceder ya a ese archivo mediante el comando nano index.html(ésta es la pagina web que se abre cuando ejecutamos la ip de nuestro server) Mediante 'll' se puede ver todo lo que contiene un archivo o directorio. ****