Raspberry Pi – Software – Lighttpd webserver
Lighttpd webserver
Waarom Lighttpd en niet Apache?
Lighttpd is een asynchronous server. het gebruikt maar liefst 1 proces met een enkele sturing en blokkeert de I/O niet.
Apache is een proces-gebaseerde server, dat wil zeggen dat er voor elke nieuwe sturing een nieuw proces wordt aangemaakt en zo enorm veel capaciteit en geheugen opslokt.
Daarom is het beter om op de Raspberry Pi een lichte HTTP server te gebruiken zoals Lighttpd.
Installeer lighttpd met het commando: sudo apt-get install lighttpd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libfam0 libterm-readkey-perl libterm-readline-perl-perl spawn-fcgi Suggested packages: fam rrdtool apache2-utils The following NEW packages will be installed: libfam0 libterm-readkey-perl libterm-readline-perl-perl lighttpd spawn-fcgi 0 upgraded, 5 newly installed, 0 to remove and 5 not upgraded. Need to get 411 kB of archives. After this operation, 1,236 kB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libfam0 armhf 2.7.0-17 [27.8 kB] Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libterm-readkey-perl armhf 2.30-4 [30.0 kB] Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libterm-readline-perl-perl all 1.0303-1 [51.9 kB] Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main lighttpd armhf 1.4.31-4+deb7u3 [287 kB] Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main spawn-fcgi armhf 1.6.3-1 [13.6 kB] Fetched 411 kB in 0s (476 kB/s) Selecting previously unselected package libfam0. (Reading database ... 68784 files and directories currently installed.) Unpacking libfam0 (from .../libfam0_2.7.0-17_armhf.deb) ... Selecting previously unselected package libterm-readkey-perl. Unpacking libterm-readkey-perl (from .../libterm-readkey-perl_2.30-4_armhf.deb) ... Selecting previously unselected package libterm-readline-perl-perl. Unpacking libterm-readline-perl-perl (from .../libterm-readline-perl-perl_1.0303-1_all.deb) ... Selecting previously unselected package lighttpd. Unpacking lighttpd (from .../lighttpd_1.4.31-4+deb7u3_armhf.deb) ... Selecting previously unselected package spawn-fcgi. Unpacking spawn-fcgi (from .../spawn-fcgi_1.6.3-1_armhf.deb) ... Processing triggers for man-db ... Setting up libfam0 (2.7.0-17) ... Setting up libterm-readkey-perl (2.30-4) ... Setting up libterm-readline-perl-perl (1.0303-1) ... Setting up lighttpd (1.4.31-4+deb7u3) ... insserv: warning: script 'mathkernel' missing LSB tags and overrides [ ok ] Starting web server: lighttpd. Setting up spawn-fcgi (1.6.3-1) ... update-alternatives: using /usr/bin/spawn-fcgi.standalone to provide /usr/bin/spawn-fcgi (spawn-fcgi) in auto mode update-alternatives: warning: not replacing /usr/share/man/man1/spawn-fcgi.1.gz with a link |
Lighttpd wordt nu automatisch gestart, als je nu naar het IP adres van de Raspberry Pi gaat, dan zie je de “placeholder” als staan, dit betekend dat je webserver als actief is en draait:
De “document folder” oftewel de folder waarin website zich in bevind is: /var/www/html (oude installaties: /var/www/),om nu bestanden via FTP weg te schrijven in /var/www, moet je eerst de toegang goed zetten (behalve als je ingelogd bent met root), doe je met het commando: sudo chmod -R 777 /var/www (-R staat voor onderliggende folders)
Je kan ook eigenaarschap overnemen van de folder /var/www met het commando: sudo chown -R pi /var/www (waar Pi is de gebruikersnaam)
Gebruik van SUDO commando’s vanuit de webserver/PHP
De webserver “gebruiker” is “www-data” en kan standaard geen SUDO commando’s uitvoeren, dit kan bijvooorbeeld nodig zijn om een python script uit te voeren welke GPIO pinnen aanstuurt.
Daarvoor moet de gebruiker www-data toegevoegd worden aan de “sudo’ers lijst” in het bestand /etc/sudoers, voeg de volgende regel toe:
www-data ALL=(ALL) NOPASSWD: ALL
Via een script:
sudo bash -c "echo 'www-data ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers"