Raspberry Pi – Software – PHP5
PHP5
PHP (PHP: Hypertext Preprocessor) is een scripttaal, die bedoeld is om op webservers dynamische webpagina’s te creëren.
Aanvankelijk stonden de letters PHP voor Personal Home Page (de volledige naam was Personal Home Page/Forms Interpreter, PHP/FI).
Sinds PHP 3.0 is de betekenis een recursief acroniem geworden: PHP: Hypertext Preprocessor.
Deze naam geeft aan waar de taal meestal voor gebruikt wordt: informatie verwerken tot hypertext (meestal HyperText Markup Language (HTML) en Extensible HyperText Markup Language (XHTML)).
Installeer PHP5 met het commando: sudo apt-get install php5-common php5-cgi php5
Ps. de volgorde is belangrijk, als je php5 voor php-cgi zet, dan wordt ook Apache webserver geïnstalleerd en dat willen we niet naast 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 41 42 |
Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libonig2 libqdbm14 Suggested packages: php-pear The following NEW packages will be installed: libonig2 libqdbm14 php5 php5-cgi php5-common 0 upgraded, 5 newly installed, 0 to remove and 5 not upgraded. Need to get 5,683 kB of archives. After this operation, 15.9 MB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-common armhf 5.4.4-14+deb7u8 [586 kB] Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libqdbm14 armhf 1.8.78-2 [119 kB] Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5 all 5.4.4-14+deb7u8 [1,028 B] Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libonig2 armhf 5.9.1-1 [130 kB] Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-cgi armhf 5.4.4-14+deb7u8 [4,848 kB] Fetched 5,683 kB in 3s (1,724 kB/s) Selecting previously unselected package php5-common. (Reading database ... 68914 files and directories currently installed.) Unpacking php5-common (from .../php5-common_5.4.4-14+deb7u8_armhf.deb) ... Selecting previously unselected package libqdbm14. Unpacking libqdbm14 (from .../libqdbm14_1.8.78-2_armhf.deb) ... Selecting previously unselected package libonig2. Unpacking libonig2 (from .../libonig2_5.9.1-1_armhf.deb) ... Selecting previously unselected package php5-cgi. Unpacking php5-cgi (from .../php5-cgi_5.4.4-14+deb7u8_armhf.deb) ... Selecting previously unselected package php5. Unpacking php5 (from .../php5_5.4.4-14+deb7u8_all.deb) ... Processing triggers for man-db ... Setting up php5-common (5.4.4-14+deb7u8) ... Creating config file /etc/php5/mods-available/pdo.ini with new version Setting up libqdbm14 (1.8.78-2) ... Setting up libonig2 (5.9.1-1) ... Setting up php5-cgi (5.4.4-14+deb7u8) ... Creating config file /etc/php5/cgi/php.ini with new version update-alternatives: using /usr/bin/php5-cgi to provide /usr/bin/php-cgi (php-cgi) in auto mode update-alternatives: using /usr/lib/cgi-bin/php5 to provide /usr/lib/cgi-bin/php (php-cgi-bin) in auto mode Setting up php5 (5.4.4-14+deb7u8) ... |
Om nu PHP scripts te gebruiken met Lighttpd moet je fast-cgi aan zetten, dit doe je met het commando: sudo lighty-enable-mod fastcgi-php
1 2 3 4 |
Met dependency: fastcgi Enabling fastcgi-php: ok Enabling fastcgi: ok Run /etc/init.d/lighttpd force-reload to enable changes |
Dan nog even de server herstarten om wijzigingen van kracht te doen laten komen met het commando: sudo /etc/init.d/lighttpd force-reload
1 |
[ ok ] Reloading web server configuration: lighttpd. |
PHP vanaf Linux BASH:
Vanuit het Linux BASH commando kun je nog geen PHP (executable) aanroepen,, jem moet hiervoor de CLI (Command Line Interface) installeren, dit doe je met het commando: sudo apt-get install php5-cli
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: php-pear The following NEW packages will be installed: php5-cli 0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. Need to get 2,432 kB of archives. After this operation, 7,269 kB of additional disk space will be used. Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-cli armhf 5.4.4-14+deb7u8 [2,432 kB] Fetched 2,432 kB in 1s (1,453 kB/s) Selecting previously unselected package php5-cli. (Reading database ... 69487 files and directories currently installed.) Unpacking php5-cli (from .../php5-cli_5.4.4-14+deb7u8_armhf.deb) ... Processing triggers for man-db ... Setting up php5-cli (5.4.4-14+deb7u8) ... Creating config file /etc/php5/cli/php.ini with new version update-alternatives: using /usr/bin/php5 to provide /usr/bin/php (php) in auto mode |
Je kan de CLI meteen testen met het commando:
php -r 'print("Hallo Wereld\n");'
(in de BASH staat dan: Hallo Wereld)
PHP testen
Nu is het tijd om php te testen, maak de website folder leeg: /var/www/html/ (oude installaties: /var/www/), maak een bestand index.php aan met het commando: sudo nano /var/www/html/index.php, en zet daarin: <?php phpinfo();?>
Druk nu op CTRL+O (writeout) en dan op ENTER op het bestand op te slaan, dan vervolgens CTRL+X om nano af te sluiten.
Ga nu naar je website, als alles goed is gegaan zie je het PHP infoblad:
PHP configratiebestand:
Waar het PHP configuratiebestand staat en welke geladen wordt, kun je achterhalen met het commando: php –ini (dubbele streepjes)
1 2 3 4 5 6 7 |
Configuration File (php.ini) Path: /etc/php5/cli Loaded Configuration File: /etc/php5/cli/php.ini Scan for additional .ini files in: /etc/php5/cli/conf.d Additional .ini files parsed: /etc/php5/cli/conf.d/10-pdo.ini, /etc/php5/cli/conf.d/20-mysql.ini, /etc/php5/cli/conf.d/20-mysqli.ini, /etc/php5/cli/conf.d/20-pdo_mysql.ini |
PHP instellen
In de meeste gevallen wordt het PHP configuratiebestand /etc/php5/cli/php.ini geladen, deze kun je bewerken met het commando: sudo nano /etc/php5/cli/php.ini
max_execution_time = 300
Dit is voor de “timeout” (maximale looptijd) cvan een PHP script (via een browser) in seconden (standaard 30 sec)
post_max_size = 100M
Dit is voor het “posten” van grotere bestanden (dan standaard 8MB)
upload_max_filesize = 100M
Dit is voor het uploaden van grotere bestanden (dan standaard 2MB), ook handing voor het importeren van grotere MySQL databases
date.timezone = “Europe/Amsterdam”
Heel belangrijk om dit goed in te stellen, PHP trekt namelijk niets aan van je Raspberry Pi instellingen.
Druk nu op CTRL+O (writeout) en dan op ENTER op het bestand op te slaan, dan vervolgens CTRL+X om nano af te sluiten.
Dan nog even de lighttpd server herstarten om wijzigingen van kracht te doen laten komen met het commando: sudo /etc/init.d/lighttpd restart
PHP tijd testen:
Je kan de datum en tijd van PHP testen door een PHP bestand aan te maken met deze inhoud en dit uit te voeren via de browser:
<?php print "De datum en tijd is: " . date("y-m-d H:i:s", time()); ?>