Risolto Consigli su come lavorare al meglio con xampp

Stylesheet

Utente Iron
7 Gennaio 2023
6
1
0
7
Salve a tutti.
Avrei bisogno di un consiglio perché non riesco a risolvere un problema.
L’azienda per cui lavoro non ha un meccanismo per registrare l’entrata e l’uscita dei dipendenti.
Perciò di mia iniziativa, utilizzando php e database mysql ho creato questa interfaccia con la quale un dipendente, tramite le credenziali con cui si registra ha la possibilità di premere un tasto ENTRATA che inserisce l’orario di entrata con la data è un tasto USCITA con la stessa medesima funzione.
Nella mia postazione funziona tutto correttamente, adesso vorrei che anche dalle altre postazioni si possa accedere allo stesso database.
Si può creare un app per Android e iOS per fare ciò?
Come posso dagli altri pc accedere allo stesso database?
Ho utilizzato xampp con phphmyadmin per realizzare il database.
 
Puoi prendere esempio da aziende come Zucchetti: loro forniscono un sistema di registrazione degli accessi tramite badge e un lettore fisico che registra i dati nel db locale aziendale o anche remoto.
La difficoltà ovviamente aumenta se devi anche realizzare il sistema hardware. Un sistema software è possibile però se lo rendi accessibile da remoto nulla impedirà di inserire dati arbitrari: un dipendente può segnare la presenza direttamente dal suo letto a casa. La cosa più sicura che puoi fare da software è rendere il servizio accessibile solo dalla rete interna aziendale (WiFi o cablata) in modo che devono trovarsi nei paraggi ma potrebbe essere necessaria una configurazione di rete avanzata in caso è permesso ai dipendenti di entrare in rete tramite VPN (es. per lo smart working).

Puoi usare xampp per questo lavoro anche se ti consiglio qualcosa di più robusto come apache standalone o nginx. Ciò che è importante è che il web server abbia indirizzo statico nella rete e devi modificare nella configurazione il parametro Listen. Invece di fare listen su localhost (127.0.0.1) usa any se deciderai di renderlo accessibile da ovunque (0.0.0.0) o l'IP locale se vuoi renderlo accessibile solo sulla LAN attuale (es. 192.168.1.2, 10.1.2.3...). Se scegli l'opzione full remote dovrai anche impostare le regole di port forwarding e firewall, con ogni probabilità ti servirà anche acquistare un dominio in questo caso.

Una volta che il server è configurato correttamente e raggiungibile da browser potrai anche raggiungerlo da eventuali app Android o iOS.
 
Puoi prendere esempio da aziende come Zucchetti: loro forniscono un sistema di registrazione degli accessi tramite badge e un lettore fisico che registra i dati nel db locale aziendale o anche remoto.
La difficoltà ovviamente aumenta se devi anche realizzare il sistema hardware. Un sistema software è possibile però se lo rendi accessibile da remoto nulla impedirà di inserire dati arbitrari: un dipendente può segnare la presenza direttamente dal suo letto a casa. La cosa più sicura che puoi fare da software è rendere il servizio accessibile solo dalla rete interna aziendale (WiFi o cablata) in modo che devono trovarsi nei paraggi ma potrebbe essere necessaria una configurazione di rete avanzata in caso è permesso ai dipendenti di entrare in rete tramite VPN (es. per lo smart working).

Puoi usare xampp per questo lavoro anche se ti consiglio qualcosa di più robusto come apache standalone o nginx. Ciò che è importante è che il web server abbia indirizzo statico nella rete e devi modificare nella configurazione il parametro Listen. Invece di fare listen su localhost (127.0.0.1) usa any se deciderai di renderlo accessibile da ovunque (0.0.0.0) o l'IP locale se vuoi renderlo accessibile solo sulla LAN attuale (es. 192.168.1.2, 10.1.2.3...). Se scegli l'opzione full remote dovrai anche impostare le regole di port forwarding e firewall, con ogni probabilità ti servirà anche acquistare un dominio in questo caso.

Una volta che il server è configurato correttamente e raggiungibile da browser potrai anche raggiungerlo da eventuali app Android o iOS.
Grazie per tutte queste informazioni.
Il mio obbiettivo è quello di renderlo accessibile solo dalla connessione aziendale.
La modifica dell’indirizzo ip devo effettuarlo direttamente dal panel di xampp?
Stavo anche pensando che forse sarebbe meglio un app desktop così i dipendenti posso utilizzarla solo una volta arrivati in ufficio, potrebbe funzionare?
 
Grazie per tutte queste informazioni.
Il mio obbiettivo è quello di renderlo accessibile solo dalla connessione aziendale.
La modifica dell’indirizzo ip devo effettuarlo direttamente dal panel di xampp?
Stavo anche pensando che forse sarebbe meglio un app desktop così i dipendenti posso utilizzarla solo una volta arrivati in ufficio, potrebbe funzionare?

Si, può funzionare, anzi visto che stai facendo tutto in PHP e MySQL potresti anche renderlo disponibile direttamente come sito web ma accessibile solo dalla LAN.
La configurazione della rete va fatta dal router (impostando un indirizzo locale fisso in base al MAC) o almeno dalle impostazioni del PC (disabilitando DHCP e scegliendo un indirizzo statico). Una volta che hai il tuo indirizzo fisso, modifica la configurazione di Apache da XAMPP per fare listen su quell'indirizzo IP sulla porta 80 e/o 443. A questo punto chiunque sia nella LAN, digitando l'indirizzo locale fisso nel browser, vedrà il sito web. Per comodità spesso i siti di intranet aziendali usano i bookmark (segnalibri) del browser o un collegamento sul desktop per non dover ricordarsi e scrivere l'indirizzo ogni volta.
 
Si, può funzionare, anzi visto che stai facendo tutto in PHP e MySQL potresti anche renderlo disponibile direttamente come sito web ma accessibile solo dalla LAN.
La configurazione della rete va fatta dal router (impostando un indirizzo locale fisso in base al MAC) o almeno dalle impostazioni del PC (disabilitando DHCP e scegliendo un indirizzo statico). Una volta che hai il tuo indirizzo fisso, modifica la configurazione di Apache da XAMPP per fare listen su quell'indirizzo IP sulla porta 80 e/o 443. A questo punto chiunque sia nella LAN, digitando l'indirizzo locale fisso nel browser, vedrà il sito web. Per comodità spesso i siti di intranet aziendali usano i bookmark (segnalibri) del browser o un collegamento sul desktop per non dover ricordarsi e scrivere l'indirizzo ogni volta.
Grazie, lunedì quando torno al lavoro proverò a fare quanto detto qua.
 
Si, può funzionare, anzi visto che stai facendo tutto in PHP e MySQL potresti anche renderlo disponibile direttamente come sito web ma accessibile solo dalla LAN.
La configurazione della rete va fatta dal router (impostando un indirizzo locale fisso in base al MAC) o almeno dalle impostazioni del PC (disabilitando DHCP e scegliendo un indirizzo statico). Una volta che hai il tuo indirizzo fisso, modifica la configurazione di Apache da XAMPP per fare listen su quell'indirizzo IP sulla porta 80 e/o 443. A questo punto chiunque sia nella LAN, digitando l'indirizzo locale fisso nel browser, vedrà il sito web. Per comodità spesso i siti di intranet aziendali usano i bookmark (segnalibri) del browser o un collegamento sul desktop per non dover ricordarsi e scrivere l'indirizzo ogni volta.
Ciao, allora ho provato diverse volte quanto detto, ma ancora non riesco a visualizzare niente sugli altri computer.
Hai modo di scrivermi una piccola guida per verificare se ho fatto i passaggi giusti?
 
Nel server, prova a usare il comando ipconfig dal prompt dei comandi. Trova l'interfaccia di rete della LAN, ad esempio se hai impostato IP locale statico a 192.168.1.2 dovresti leggere:

Codice:
Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

In XAMPP control panel, premi il tasto Config di Apache, scegli prima httpd.conf

Cambia Listen 80, specificando di fare bind solo sull'interfaccia esposta alla LAN tramite il tuo IP locale: Listen 192.168.1.2:80. Fai lo stesso in httpd-ssl.conf se usi la porta 443, altrimenti commenta quella riga con # all'inizio.

A questo punto salva la configurazione e riavvia Apache facendo stop e start. Adesso entra da browser da localhost o dalla LAN, seguendo lo stesso esempio, tramite http://192.168.1.2/. Se riesci ancora a vederlo solo da localhost allora quando hai installato xampp hai negato il permesso del firewall di Windows, in tal caso dovrai consentirlo manualmente.
 
Ultima modifica:
Nel server, prova a usare il comando ipconfig dal prompt dei comandi. Trova l'interfaccia di rete della LAN, ad esempio se hai impostato IP locale statico a 192.168.1.2 dovresti leggere:

Codice:
Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

In XAMPP control panel, premi il tasto Config di Apache, scegli prima httpd.conf

Cambia Listen 80, specificando di fare bind solo sull'interfaccia esposta alla LAN tramite il tuo IP locale: Listen 192.168.1.2:80. Fai lo stesso in httpd-ssl.conf se usi la porta 443, altrimenti commenta quella riga con # all'inizio.

A questo punto salva la configurazione e riavvia Apache facendo stop e start. Adesso entra da browser da localhost o dalla LAN, seguendo lo stesso esempio, tramite http://192.168.1.2/. Se riesci ancora a vederlo solo da localhost allora quando hai installato xampp hai negato il permesso del firewall di Windows, in tal caso dovrai consentirlo manualmente.
Grazie per l’aiuto, adesso funziona tutto.
Erroneamente non avevo dato i permessi al firewall di Windows
Messaggio unito automaticamente:

Nel server, prova a usare il comando ipconfig dal prompt dei comandi. Trova l'interfaccia di rete della LAN, ad esempio se hai impostato IP locale statico a 192.168.1.2 dovresti leggere:

Codice:
Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

In XAMPP control panel, premi il tasto Config di Apache, scegli prima httpd.conf

Cambia Listen 80, specificando di fare bind solo sull'interfaccia esposta alla LAN tramite il tuo IP locale: Listen 192.168.1.2:80. Fai lo stesso in httpd-ssl.conf se usi la porta 443, altrimenti commenta quella riga con # all'inizio.

A questo punto salva la configurazione e riavvia Apache facendo stop e start. Adesso entra da browser da localhost o dalla LAN, seguendo lo stesso esempio, tramite http://192.168.1.2/. Se riesci ancora a vederlo solo da localhost allora quando hai installato xampp hai negato il permesso del firewall di Windows, in tal caso dovrai consentirlo manualmente.
Un ultima questione da risolvere, se premo su admin nella voce mysql per andare a vedere il db.
Google mi da un errore e non carica.
Soluzione?
 
Grazie per l’aiuto, adesso funziona tutto.
Erroneamente non avevo dato i permessi al firewall di Windows
Messaggio unito automaticamente:


Un ultima questione da risolvere, se premo su admin nella voce mysql per andare a vedere il db.
Google mi da un errore e non carica.
Soluzione?

Se intendi phpMyAdmin, è una pessima idea renderlo raggiungibile da gli altri host nella LAN. Quindi devi modificare il file di configurazione httpd-xampp.conf e nella virtualdirectory di phpMyAdmin sostituire Require local con:

Codice:
Order allow,deny
Deny from all
Allow from 192.168.1.2

Ovviamente sostituendolo con il tuo IP locale, oppure con l'IP dell'unica macchina da cui è consentito accedervi.
 
Se intendi phpMyAdmin, è una pessima idea renderlo raggiungibile da gli altri host nella LAN. Quindi devi modificare il file di configurazione httpd-xampp.conf e nella virtualdirectory di phpMyAdmin sostituire Require local con:

Codice:
Order allow,deny
Deny from all
Allow from 192.168.1.2

Ovviamente sostituendolo con il tuo IP locale, oppure con l'IP dell'unica macchina da cui è consentito accedervi.
Grazie