Appunti di Programmazione

Linux: collegare due PC in rete

Sui miei due computer, un portatile e un fisso, ho installato LAMP (acronimo di Linux, Apache, MySQL e PHP) per poter realizzare in locale programmi PHP grazie all'utilizzo del server Apache. Effettuando alcune prove di collegamento fra due PC con Linux installato, mi sono accorto che se inserisco l'indirizzo IP di uno, nel browser dell'altro ho accesso alla cartella creata e impostata di default dal processo di installazione del server Apache dove vengono memorizzati i vari programmi/siti scritto in PHP. E' condizione fondamentale che il server Apache sia attivo nel computer al qule ci coleghiamo.

Andiamo per gradi. Ho fatto così:

Controllo server Apache

PC Fisso -

$ systemctl status apache2 
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-04-26 06:52:01 CEST; 37min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 792 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 922 (apache2)
      Tasks: 11 (limit: 9214)
     Memory: 28.5M
     CGroup: /system.slice/apache2.service
             ├─ 922 /usr/sbin/apache2 -k start
             ├─ 926 /usr/sbin/apache2 -k start
             ├─ 927 /usr/sbin/apache2 -k start
             ├─ 928 /usr/sbin/apache2 -k start
             ├─ 929 /usr/sbin/apache2 -k start
             ├─ 930 /usr/sbin/apache2 -k start
             ├─2277 /usr/sbin/apache2 -k start
             ├─2300 /usr/sbin/apache2 -k start
             ├─2302 /usr/sbin/apache2 -k start
             ├─2305 /usr/sbin/apache2 -k start
             └─2306 /usr/sbin/apache2 -k start

PC Portatile -

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-04-26 06:52:42 CEST; 36min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 658 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 704 (apache2)
      Tasks: 55 (limit: 4585)
     Memory: 19.8M
        CPU: 266ms
     CGroup: /system.slice/apache2.service
             ├─ 704 /usr/sbin/apache2 -k start
             ├─ 705 /usr/sbin/apache2 -k start
             └─ 706 /usr/sbin/apache2 -k start

In entrambi è attivo, se non lo fosse stato è necessario attivarlo in questo modo:

$ systemctl start apache2 

Recupero indirizzo IP

Adesso è necessario conoscere l'indirizzo IP dei due computer.

PC Fisso -

$ ip addr show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:e0:4c:0a:e2:36 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic noprefixroute eno1
       valid_lft 18305sec preferred_lft 18305sec
    inet6 fe80::d94:ac98:9784:3890/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wlo2:  mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 20:1e:88:b9:99:e8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.9/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo2
       valid_lft 18308sec preferred_lft 18308sec
    inet6 fe80::919b:e772:e756:79b5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

PC Portatile -

$ ip addr show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0f0:  mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 10:9a:dd:6e:fa:b4 brd ff:ff:ff:ff:ff:ff
    inet 169.254.15.174/16 brd 169.254.255.255 scope link enp2s0f0:avahi
       valid_lft forever preferred_lft forever
3: wlp3s0b1:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether e0:f8:47:42:62:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.8/24 brd 192.168.1.255 scope global dynamic wlp3s0b1
       valid_lft 18058sec preferred_lft 18058sec
    inet6 fe80::e2f8:47ff:fe42:626c/64 scope link 
       valid_lft forever preferred_lft forever

Io mi sono recuperato gli indirizzi IP della rete WiFi (generalmente hanno un nome che inizia con wl...) perché questa è la tipologia di connessione che ho in casa; qualora abbiate un collegamento tramite cavo Ethernet collegato al router, (generalmente hanno un nome che inizia con eth... o en...) dovete annotarvi i rispettivi valori.

Creazione cartella per condivisione file

La cartella cui abbiamo accesso, in entrambi i computer è /var/www/html, all'interno della quale ci sono altre cartelle relative ad alcuni siti realizzati dal sottoscritto. Per tenere in ordine questa directory e non mescolare i programmi con i file da condividere, mi creo una cartella, banalmente etichettata come Condivisa, adatta allo scopo. Tale comando deve impartito su entrambi i computer.

$ sudo mkdir /var/www/html/Condivisa
[sudo] password di gandalfrank:

Connessione

Da computer Fisso, aprire il browser e nella barra degli indirizzi digitare l'IP del Portatile (192.168.1.8), per effettuare una connessione.

Collegamento del PC Fisso alla cartella del Portatile'

Similmente a quanto appena fatto, aprire il browser nel Portatile e digitare l'indirizzo IP del Fisso (192.168.1.9) per effettuare una connessione.

Collegamento del PC Fisso alla cartella del Portatile'

NOTA BENE: Le due cartelle "Condivisa" non rappresentano la stessa directory, né sono sincronizzate, semplicemente ho assegnato loro lo stesso nome e possono contenere file diversi l'una dall'altra, solo che sono accessibili da entrambi i pc con il modo sopra esposto. Infatti se copio due gruppi di file diversi fra loro nelle due cartelle ottengo questo:

Fisso collegato alla cartella "Condivisa" del Portatile:

Collegamento del PC Fisso alla Condivisa del Portatile'

Portatile collegato alla cartella "Condivisa" del Fisso:

Collegamento del PC Portatile alla Condivisa del Fisso'

Come si può vedere il contenuto delle due cartelle è diverso.
Per copiare i file di una cartella nell'altro PC è sufficiente aprire un file alla volta e salvarlo dove preferiamo.

Connessione

Questo metodo forse non è dei più pratici e qualcuno storcerà il naso vedendo come lo uso, ma personalmente non amo avere troppi programmi nel computer e quando posso uso sempre le risorse che ho già a disposizione piuttosto che installarne di nuove, come ad esempio Samba.

ATTENZIONE!!! Come già anticipato all'inizio dell'articolo, questo tipo di collegamento prevede che su entrambi i PC sia installato e attivo il server Apache, se così non fosse e voleste usare questo metodo, è necessario provvedere all'installazione del server stesso e poi seguire questo articolo:

$ sudo apt install apache2
[sudo] password di gandalfrank: