En aquesta practica instal·lem i configurem el servidor WEB Apache en un sistema operatiu Ubuntu.
.- Sistema operatiu.
.- Re-adreçar els ports del router.
.- Instal·lar Apache.
.- Configurar Apache.
.- Crear un certificat SSL auto firmat.
.- Instal·lar PHP 8.0.
.- Instal·lar i configurar OpenSSH. Es opcional però es recomanable realitzar-ho.

Fem servir el sistema operatiu Ubuntu-20, també funciona en Linux Mint 19.
Es important saber treballar amb el terminal de Ubuntu, però no es del tot necessari, es copiar i enganxar les comandes en el terminal.
Primer que tot, el nostre servidor WEB Apache te que tenir una IP privada estàtica i també la IP publica estàtica.
La IP publica ens la don el nostre proveïdor de Internet ISP. Normalment els ISP ens dona una IP publica variable. La IP estàtica es té que demanar i te un cost addicional.
La IP privada del nostre servidor Apache, la escollim nosaltres a dins del rang que subministra el router. En Ubuntu tenim que configurar la IP privada, com estàtica.
Re-adreçar el port 80 per el servei HTTP, les peticions entrants per el port extern 80 van dirigides a la IP privada en el port intern 80. Pot ser que el port 80 estigui ocupat. La única solució es que el nostre servidor de Internet el canvi. En el nostre cas el port 80 estava ocupat per entrar en el router, per entrar en el router escrivíem en el navegador la IP del router 192.168.1.1 sense port, això vol dir que agafa el port per defecte que es el 80. La nostre ISP (Internet Service Provider) ha canviat el port del router i ha deixat lliure el port 80.
Re-adreçar el port 443 per servei HTTPS, per les peticions entrants per el port 443 van dirigides a la IP privada en el port intern 443. No oblidar aquest últim pas si volem que les nostres connexions siguin segures amb el protocol HTTPS.

sudo apt update
sudo apt install apache2
Per permetre el accés extern als ports web predeterminats.
Llista de les aplicacions que pot habilitar / des habilitar el Firewall:
sudo ufw app list

Tres perfils per Apache:
Apache : obre només el port 80 (transit web normal no xifrat).
Apache full : obre el port 80 i també el 443 transit TLS/SSH xifrat.
Apache Secure : només obre el port 443.
Al no tenir encara configurat el protocol SSH, permeti’m el transit en el port 80.
sudo ufw allow 'Apache'

sudo ufw status

sudo systemctl status apache2

Per obtenir la IP privada del servidor:
hostname -I

Per obtenir la IP publica del servidor:
curl -4 icanhazip.com
Escrivim en el navegador:
192.168.1.112

El servidor Apache mostra la pagina per defecte, implica que funciona correctament.
Per detenir el servidor web:
sudo systemctl stop apache2
Per iniciar el servidor web:
sudo systemctl start apache2
Per reiniciar el servidor web:
sudo systemctl restart apache2
Per recarregar sense tancar la connexió:
sudo systemctl reload apache2
Des-habilitar:
sudo systemctl disable apache2
Per habilitar el servidor:
sudo systemctl enable apache2
Serveix per allotjar mes de un domini en un mateix servidor.
Configurem els dominis tresavis i tresavis.cat.
Per defecte Ubuntu allotja el lloc WEB en /var/www/html. Per un sol lloc web i es el predeterminat.
Creem dos directoris dins de /var/www, per allotjar els 2 dominis.
sudo mkdir /var/www/tresavis
sudo mkdir /var/www/tresavis.cat
Assignar la propietat del directori amb la variable de entorn $USER
sudo sudo chown -R $USER:$USER /var/www/tresavis
sudo chown -R $USER:$USER /var/www/tresavis.cat
Escrivim la primera pagina web de tresavis.cat, el index:
En el nostre cas ho fem en llenguatge php. Normalment les pagines web s’escriuen en HTML.
sudo gedit /var/www/tresavis.cat/index.php

Mes fàcilment podem escriure el index en llenguatge html, per exemple de la següent manera:

Guardem i tanquem el arxiu.
Apache proporciona el contingut de la pagina tresavis.cat si creem un host virtual amb les directius correctes.
El arxiu de configuració predeterminat del host virtual es:
/etc/apache2/sites-available/000-default.conf
Creem un nou arxiu de host virtual per el domini tresavis: tresavis.conf
sudo gedit /etc/apache2/sites-available/tresavis.conf
Escrivim el següent:
<VirtualHost *:80>
ServerAdmin tresavis3@gmail.com
ServerName tresavis
ServerAlias www.tresavis.cat
DocumentRoot /var/www/html/tresavis
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Creem un nou arxiu: tresavis.cat.conf, per el domini tresavis.cat
sudo gedit /etc/apache2/sites-available/tresavis.cat.conf

Habilitem els arxius amb l’eina a2ensite :
sudo a2ensite tresavis.conf
sudo a2ensite tresavis.cat.conf

Tornem a carregar Apache, per activar la nova configuració:
systemctl reload apache2
Deshabilitem el lloc predeterminat:
sudo a2dissite 000-default.conf

Prova de errors de configuració:
sudo apache2ctl configtest
Syntax OK, però si el missatge del terminal es com el següent:
Modifiquem el arxiu apache2.conf. Afegim ServerName 127.0.0.1 al final.
sudo gedit /etc/apache2/apache2.conf

systemctl reload apache2
sudo apachectl configtest

Reiniciem el servei Apache.
sudo systemctl restart apache2.service
Posem els nostres arxius html i php de la nostre pagina web en els directoris:
var/www/tresavis
var/www/tresavis.cat
En el navegador escrivim localhost o la IP del localhost que es 127.0.0.1 i es mostra la pagina de la nostre WEB:

/var/www/html conté la pagina web predeterminada de Apache. Això es pot canviar amb els arxius de configuració de Apache.
/etc/apache2: directori de configuració d'Apache. S'hi troben tots els arxius de configuració d'Apache.
/etc/apache2/apache2.conf: l'arxiu principal de configuració d'Apache. Això es pot modificar per fer canvis en la configuració general d'Apache. Aquest fitxer administra la càrrega de molts dels altres arxius de directori de configuració.
/etc/apache2/ports.conf: aquest arxiu especifica els ports en què Apache escoltarà. Per defecte, Apache escolta al port 80. De forma addicional, ho fa en el 443 quan s'habilita un mòdul que proporciona capacitats SSL.
/etc/apache2/sites-available/: directori en el qual es poden emmagatzemar llocs web. Apache no utilitzarà els arxius de configuració d'aquest directori llevat que estiguin vinculats a directori sites-enabled. Normalment, tota la configuració de blocs de servidor es realitza en aquest directori i després s'habilita el vincular-se a l'altre directori amb la comanda a2ensite.
/etc/apache2/sites-enabled/: directori on s'emmagatzemen hosts virtuals per lloc habilitats. Normalment, es creen vinculant els arxius de configuració de directori sites-available amb a2ensite. Apache llegeix els fitxers de configuració i els enllaços d'aquest directori quan s'inicia o es torna a carregar per a compilar una configuració completa.
/etc/apache2/conf-available/ i /etc/apache2/conf-enabled/: aquests directoris tenen la mateixa relació que els directoris sites-available i sites-enabled, però s'utilitzen per emmagatzemar fragments de configuració que no pertanyen a un amfitrió virtual. Els arxius de directori conf-available poden habilitar amb la comanda a2enconf i deshabilitar amb la comanda a2disconf.
/etc/apache2/mods-available/ i /etc/apache2/mods-enabled/: aquests directoris contenen els mòduls disponibles i habilitats, respectivament. Els arxius que acaben en .load contenen fragments per carregar mòduls específics, mentre que els arxius que acaben en .conf contenen la configuració per a aquests mòduls. Els mòduls es poden habilitar i deshabilitar amb les ordres a2enmod i a2dismod.
Registres de servidor.
/var/log/apache2/access.log: per defecte, cada sol·licitud enviada al seu servidor web s'assenta en aquest fitxer de registre a menys que Apache estigui configurat per no fer-ho.
/var/log/apache2/error.log: per defecte, tots els errors es registren en aquest arxiu. La directiva loglevel de la configuració d'Apache especifica el nivell de detall dels registres d'error.
TLS, protocol de seguretat en la capa de transport i el seu predecessor SSL, serveixen per protegir el transit de dades en un entorn xifrat.
El certificat auto firmat xifra la comunicació entre client servidor. No està validat per cap autoritat certificadora. El usuari veurà un error en el navegador.
Let’s Encrypt es una endidat de certificació (CA) que facilita la obtenció i a instal·lació de certificats TLS/SSL gratuïts i habilita HTTPS xifrat en servidors web.

Cerbor es un programari per automatitzar el procés de obtenció i configuració del certificat i que es renovi automàticament.
S'utilitza un arxiu de host virtual diferent del predeterminat de Apache per poder configurar el lloc web protegit amb Let’s Encrypt. Els arxius predeterminats queden com de reserva.
· Servidor Ubuntu 20.4.
· Registre A amb el domini orientat a la IP publica, en el nostre cas tresavis.cat
· Arxiu de host virtual per el domini /etc/apache2/sites-available/tresavis.cat.conf
Nominalia ens proporciona el domini tresavis.cat.
Entrem en nominalia i comprovem que el nostre domini estigui vinculat correctament amb la nostre IP publica.
Registra A del DNS:

Cerbot permet automatitzar la obtenció de certificats i configurar HTTPS.
Per obtenir el certificat SSL amb Let’s Script, primer tenim que instal·lar Cerbot. Necesitem 2 paquets cerbot i python3-cerbot apache.Aquest segon paquet integra Cerbot amb Apache.
sudo apt install certbot python3-certbot-apache
Cerbot ha de poder trobar les directives ServerName i ServerAlias en el nostre host virtual establert en /etc/apache2/sites-available/tresavis.cat.conf.
sudo gedit /etc/apache2/sites-available/tresavis.cat.conf

Per validar els canvis:
sudo apache2ctl configtest
Te que sortir Syntax OK. Si es així carreguem Apache:
sudo systemctl reload apache2
Tenim que habilitar el perfil Apache full per permetre tan el transit HTTP com també HTTPS.
sudo ufw status

Permetre el perfil Apache Full i eliminar el perfil Apache:
sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'
El estat ha canviat, ho comprovem:
sudo ufw status

Per habilitar HTTPS necessitem de Let’s Encrypt que es una Autoritat de Certificació (AC). Cerbot es l’eina per instal·lar el certificat en Apache. Fa sevir el protocol ACME.

Cerbot ofereix varies alternatives per obtenir certificats SSL. Fem servir el complement --apache
sudo certbot --apache
Posem el nostre correu.
Cliquem 2, però millor clicar enter per obtenir el certificat en els dos dominis.

El certificat està instal·lat i configurat en el servidor web Apache. Comprovem el funcionament del certificat, escrivint en el navegador:
https://www.tresavis.cat
Si no funciona amb el mètode anterior, podem fer servir el següent mètode per des-instal·lar Cerbot i tornar a començar amb el comando snap:
Instal·lar snap:
sudo snap install core; sudo snap refresh core
Eliminar els paquet previs de Cerbot instal·lats amb apt, després instal·larem Cerbot snap.
sudo apt-get remove certbot
sudo snap install --classic certbot

Preparar el comando Cerbot:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Instal·lem els certificats en Apache automàticament, tenir accés HTTPS en un sol pas:
sudo cerbot --apache

Comprovem escrivin les URLs en el navegador:
https://tresavis.cat
https://www.tresavis.cat
PHP (Hypertext Preprocessor) es un llenguatge de codi-obert molt popular especialment adequat per el desenvolupament web i que pot ser incrustat en HTML.

Actualitzar els paquets del sistema:
sudo apt update; sudo apt upgrade
Dependències:
sudo apt install -y software-properties-common
Actualitzar:
sudo apt-get update sudo apt full-upgrade sudo apt autoremove (nomes si es necessari)
Afegir el PPA de ondrej:
sudo add-apt-repository ppa:ondrej/php
Actualitzar els paquets:
sudo apt upgrade -y
Instal·lar php 8.0:
sudo apt -y install libapache2-mod-php
SSH (Secure Shell) es un protocol per accedir a una maquina remota de forma segura.

OpenSSH es un conjunt d’eines de codi lliure basat en el protocol SSH.
Actualitzem el sistema:
sudo apt-get update
Instal·lem el servidor OpenSSH i les seves dependències:
sudo apt-get install openssh-server
Iniciem el servei:
sudo systemctl start sshd.service
Per detenir el servei:
sudo systemctl stop sshd.service
Que el servei inicií amb el sistema:
sudo systemctl enable sshd.service
Per saber el estat del servei:
sudo systemctl status sshd.service

Permetre les connexions SSH per part del Firewall:
sudo ufw app list

sudo ufw allow OpenSSH sudo ufw enable sudo ufw status

Connectar amb la maquina Ubuntu remotament on tenim el servidor.
Des de una maquina en aquest cas Linux Mint que es troba en la mateixa xarxa local, escrivim ssh i la ip de la maquina que volem connectarar:
ssh 192.168.1.2
Posem el password per poder entrar en la maquina remota:

Tenim accés total a la maquina remota. Des de la maquina nomenada josep (Linux Mint) hem connectat a la maquina nomenada ubuntu (Ubuntu).
El mar.
Havaneres.
Lloret antic.
Lloret avui.
De cala Morisca a Sa Carabera.
De Sa Carabera a Treumal.
Lloret en kayak.
Vígilancia remota.
Caixa-tpv.
Cambrer-app.
Client webApp.
Relats del banc del si no fos
Històries d'ahir
Vídeos antics de Lloret
El caiac
Contes de l'avi.
Control d’accés amb contrasenya.
Orgue de llums.
Comparativa de editors Arduino.
Projecte bon Nadal.
Control de la qualitat del aire interior (CO2) amb semàfor LED.
NodeMCU-ThingSpeak
ThingSpeak.
NodeMCU com AccessPoint.
Control de la llum de casa per web.
Control de un led per el mòbil.
Sistema de fitxers en ESP8266.
Altura del nivell d'aigua.
Avis d’alarma a Telegram.
Control de la intensitat de llum de un LED per Internet.
Magatzematge de temperatura i humitat en Thinger.
Publicar temperatura i humitat en Google Sheets.
ESP8266 i Firebase.
La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega.
ESP32-CAM
ESP32-CAM captura fotos per ser vistes en la WEB.
Pujar fotos a un servidor FTP amb ESP32-CAM.
MicroPython en ESP8266.
Visual Estudio Code per Arduino.
Classificador d’imatges.
Instal·lar i configurar Apache en Ubuntu.
Accés a un servidor Linux remotament.
Client i Servidor FTP.
Màquina virtual UBUNTU.
WindowsXP en Virtualbox.
Multisim, simulador de circuits electrònics.
Proteus, simulador de circuits electrònics.
MySQL. Instal·lació.
MySQL. Aplicacions.
Netbeans Maven MySQL.
Java+Netbeans+Maven+EclipseLink+Mysql
Aplicació d’escriptori JavaFX
App JavaFX amb SceneBuilder
App Java-Swing





As Time Goes By
Cal recordar-ho
You must remember this
Un petó és només un petó
A kiss is just a kiss
Un sospir és només un sospir
A sigh is just a sigh
S'apliquen les coses fonamentals
The fundamental things apply
Amb el pas del temps
As time goes by
I quan dos amants cortegen
And when two lovers woo
Encara diuen "t'estimo"
They still say "I love you"
En això es pot confiar
On that you can rely
No importa el que aporti el futur
No matter what the future brings
Amb el pas del temps
As time goes by
Cançons de clar de lluna i d’amor
Moonlight and love songs
Mai desfasat
Never out of date
Cors plens de passió
Hearts full of passion
Gelosia i odi
Jealousy and hate
La dona necessita l’home i l’home ha de tenir la seva parella
Woman needs man, and man must have his mate
Això ningú no ho pot negar
That no one can deny
Segueix sent la mateixa història antiga
It's still the same old story
Una lluita per l’amor i la glòria
A fight for love and glory
Un cas de fer o morir
A case of do or die
El món sempre acollirà els amants
The world will always welcome lovers
Amb el pas del temps
As time goes by
Noves tecnologies WEB Arduino Domótica MycroPython NodeMCU IoT Java ESP8266 Lora C++ Programació Server-Client