APACHE2-PHP su Raspberry Breve introduzione
Apache 2 Apache2 è 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 HyperText Markup Language
Apache2 su raspberry Tutte le istruzioni che vengono date, sono quelle da scrivere nel prompt dei comandi di Raspberry Prima di installare Apache2 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 apache2 -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 lato server
php Per installare php su raspberry, bisogna digitare il seguente codice: sudo apt-get install php5 libapache2-mod-php5 –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 <?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/wiringPi cd wiringPi ./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 $setmode18 = shell_exec("/usr/local/bin/gpio -g mode 18out"); 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>