Awesome
php-gpio-web
Website integration example of the php-gpio lib, allowing your php-based website to blink LEDs.
Hardware prerequisites
After having installed & wired your LED & resistor on a breadboard, add appropriate modules from the Linux Kernel:
For LEDs, enable the gpio module :
$ sudo modprobe w1-gpio
(see a complete circuit diagram for a single LED + explanations & schemas here)
To load such kernel module automatically at boot time, edit the /etc/modules
file & add this line:
w1-gpio
Installation
The recommended way to install php-gpio-web is through composer.
Install a webserver, git, php5 & curl:
$ sudo apt-get install git php5 apache2 libapache2-mod-php5 curl
Clone this repo & install vendors (dependencies)
$ git clone git://github.com/ronanguilloux/php-gpio-web.git
$ cd php-gpio-web
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install
Configure apache2 vhost
Permission to blink
Fetch the ready-to-use blinker file inside your project
$ cd php-gpio-web
$ cp vendor/ronanguilloux/php-gpio/blinker .
$ chmod a+x blinker
To run this blinker with sudo permissions but without password inputting,
just allow your www-data
or your pi
user to run the blinker script.
With the solution provided below, only one blinker script is needed to manage all your leds,
and your webserver application needs only one php file to be specified in /etc/sudoers.
Edit your /etc/sudoers
file:
$ sudo visudo
Then add this two lines in your /etc/sudoers
file :
www-data ALL=NOPASSWD: /path/to/the/blinker
Replace /pat/to/the/blinker with your project path
The blinker file provided is ready to use the API. You do not need to install apache2-suexec nor suPHP.
Run it!
Via the PHP built-in web server:
$ php -S "`hostname -I`:8080" -t web/
Via Apache2: cf. the apache2.conf example file