APACHE 2 PHP su Raspberry Breve introduzione Apache
APACHE 2 -PHP su Raspberry Breve introduzione
Apache 2 • Apache 2 è uno dei principali webserver • Un webserver è un sistema informatico che si occupa di rispondere alle richieste delle risorse utilizzando il protocollo http • Le varie risorse sono presentate tramite documenti HTML Hyper. Text Markup Language
Apache 2 su raspberry • Tutte le istruzioni che vengono date, sono quelle da scrivere nel prompt dei comandi di Raspberry • Prima di installare Apache 2 sulla scheda Raspberry è utile fare degli aggiornamenti con i seguenti comandi (dal prompt…. come premesso): – Sudo apt-get update – Sudo apt-get upgrade • Si passa ad installare il software con il seguente comando: sudo apt-get install apache 2 -y
Pagina principale • La pagina principale di raspberry si chiama per default index. html oppure index. php e si trova nella directory /var/www/html • Per sapere le informazioni riguardo tale directory, sempre dal prompt dei comandi, si passa nella directory /var/www/html con il comando cd /var/www/html • Si digida – ls -al per conoscere le informazioni – Sudo chown pi: index. html
Indirizzo IP • Per vedere se l’installazione è andata a buon fine, bisogna collegare un altro pc o smartphone alla scheda raspberry tramite il suo indirizzo ip, l’importante che siano nella stessa rete locale • Dal pc si apre il browser e si digita l’indirizzo ip di raspberry e della pagina principale per default: 192. 168. x. x: 80/index. html • Bisogna però conoscere l’indirizzo ip di raspberry tramite uno dei seguenti comandi: – ifconfig che da una serie di informazioni della rete – hostname -I che da solo l’indirizzo Ip di raspberry
Index. html • Da un host collegato a raspberry, comparirà il seguente file: • Questo file va cancellato per scriverne uno personale
Index. html • Sempre restando nella directory /var/www/html e, sempre dal prompt dei comandi, si cancella il file index. html con il comando sudo rm index. html • Per creare un nuovo file index si procede in uno dei seguenti modi: – sudo leafpad index. html (leafpad è un programma di scrittura visuale simile a notepad) – sudo nano index. html (per salvare ed uscire ctrl+x e poi ctrl +y)
php • Per avere delle pagine dinamiche, html non basta. • Il linguaggio php ci viene incontro • Php è anche esso un linguaggio di script il cui codice può essere inserito in un file html • Tutti i file php devono essere salvati con estensione. php • Tutti i file html che contengono un codice php devono essere salvati con estensione. php • Il linguaggio php è compilato server
php • Per installare php su raspberry, bisogna digitare il seguente codice: – sudo apt-get install php 5 libapache 2 -mod-php 5 –y • Si può cambiare il codice index. html in index. php • Il primo programma che si può scrivere è: – <? php echo “ciao mondo”; ? >
Semplice esempio php <? phpinfo(); ? >
Gpio in php • Per lavorare con GPIO in php bisogna lavorare con la funzione shell_exec() • Per installare tale funzione, bisogna seguire le seguenti istruzioni dal prompt dei comandi: – sudo apt-get install git-core – git clone git: //git. drogon. net/wiring. Pi – cd wiring. Pi. /build • Nella directory /var/www/html si scrive un programmino in php per pilotare un led su gpio 18 • Una volta digitato il programma, da un host sulla stessa rete di Raspberry si va nel browser e si digita: 192. 168. x. x/nomeprogramma. php • Un esempio di programma è scritto nella slide successiva
Accendere un led con php su gpio 18 <html> <head> <meta name="viewport" content="width=device-width" /> <title>LED Control</title> </head> <body> LED Control: <form method="get" action="gpio. php"> <input type="submit" value="ON" name="on"> <input type="submit" value="OFF" name="off"> </form> <? php $setmode = shell_exec("/usr/local/bin/gpio -g mode out"); if(isset($_GET['on'])) { $gpio_on = shell_exec("/usr/local/bin/gpio -g write 17 1"); echo "LED is on"; } else if(isset($_GET['off'])) { $gpio_off = shell_exec("/usr/local/bin/gpio -g write 17 0"); echo "LED is off"; } ? > </body> </html>
Far lampeggiare un led <html> <head> <meta name="viewport" content="width=device-width" /> <title>Lampeggio</title> </head> <body> Lampeggio switch: <form method="get" action="switch. php"> <input type="submit" value="Trigger" name="switch"> </form> <? php $setmode 18 = shell_exec("/usr/local/bin/gpio -g mode 18 out"); if(isset($_GET['switch'])) { $gpio_off = shell_exec("/usr/local/bin/gpio -g write 18 1"); sleep (0. 5); $gpio_on = shell_exec("/usr/local/bin/gpio -g write 18 0"); echo "Done!"; } ? > </body> </html>
- Slides: 13