Apache webserver met PHP

Apache is een gratis en open-source web server gemaakt door de Amerikaanse software-ontwikkelaar Robert McCool. Apache werd uitgebracht in 1995 en kreeg al snel een meerderheidsbelang op de webservermarkt. Apache levert servers voor internetgiganten zoals Google en Wikimedia-projecten zoals Wikipedia. Aan het begin van de 21e eeuw implementeerden Apache-servers meer dan 50 procent van de inhoud van internet.

De grootste uitdaging van een webserver is om veel verschillende internetgebruikers tegelijkertijd te bedienen – die allemaal verschillende pagina’s opvragen. Webservers verwerken bestanden die zijn geschreven in verschillende programmeertalen, zoals PHP, Python, Java en andere.

Wil je met Apache en PHP GPIO (LEDs) aansturen?
Met de webserver Apache ben je onder andere in staat om d.m.v. specifieke PHP-scripts op afstand de GPIO van de Raspberry Pi te besturen. Hoe je dit doet is te vinden in de tutorial GPIO poorten met PHP besturen. Hiervoor zal je ook de tutorial van WiringPi moeten uitvoeren waarbij er veel meer dan de standaard GPIO poorten beschikbaar komen. Een bijkomende verandering is dat je de GPIO direct vanaf de terminal prompt kunt bedienen. Het bedienen van de GPIO kan d.m.v. SSH, maar de interface (het console) is niet erg gebruikersvriendelijk en iedere keer de commando’s intikken duurt lang en is vervelend. Door Apache te gebruiken kunnen we een grafische interface bouwen die het gebruik aantrekkelijk maakt.

Wil je alleen een Apache server, eventueel met PHP installeren? Ga dan hieronder verder.

De Apache webserver installeren
Een website de beste oplossing als je informatie met alle apparaten wilt uitwisselen. Het enige dat je hoeft te kennen is zijn vier talen: HTML (de webpagina), CSS (paginastijl), PHP (interactie met de server) en JavaScript (interacties met de gebruiker). Apache kan ons daarbij helpen.

Let op! Om PHP te installeren moet de Raspberry Pi van Raspbian versie 10 (Buster) voorzien zijn!

Stap 1. Voordat we Apache op onze Raspberry Pi installeren, moeten we er eerst voor zorgen dat de pakketlijst up-to-date is door de volgende twee opdrachten uit te voeren.

sudo apt-get update
sudo apt-get upgrade

Stap 2. Eerst moeten we het Apache2-pakket op onze Raspberry Pi installeren.

Voor degenen die niet weten wat Apache is , het is een serversoftware die de HTML-bestanden van een computer naar de webbrowser stuurt.

Om apache2 op uw Raspberry Pi te installeren, voert u de volgende opdracht in de terminal in.

sudo apt install apache2 -y

Stap 3.Met Apache2 geïnstalleerd op onze Raspberry Pi, hebben we nu een extreem eenvoudige webserver in gebruik. De server kan niet-dynamische inhoud leveren, zoals HTML-bestanden. Om te controleren of de installatie goed gegaan is geef je het volgende commando:

systemctl status apache2

Als de installatie goed gegaan is zie je in het groen dat de server actief is.

De status van Apache

Geef het commando:

nano /etc/apache2/sites-available/000-default.conf

Het bestand opent zich. Wat hier zichtbaar is, is de DocumentRoot, deze is : /var/www/html

Uitsnede van het getoonde bestand 000-default.conf

Ga naar deze map met: cd /var/www/html/

Kijk wat erin staat: ls -l

Als het goed is tref je het bestand index.html erin aan.

De inhoud van dit bestand bestaat uit een klein html-script waarbij de Apache2 Debian Standaard Pagina getoond wordt.

Stap 4. Om te controleren of Apache actief is op de Raspberry Pi, kun je het IP-adres van de Raspberry Pi in een webbrowser invoeren. De server zou een webpagina moeten retourneren met een eenvoudige tekst erop zoals hieronder afgebeeld.

Raspberry Pi Apache Web Server Standaardpagina

Ga nogmaals naar de map: cd /var/www/html/

Kijk wat erin staat, nu met: ls -la

Stap 5. Je ziet dat de eigenaar van alle bestanden root root is. Om later niet steeds sudo in de opdrachten te moeten zetten, is het handiger om de pi-gebruiker volledige toegang tot de bestanden in deze map te geven. Geef daarvoor het commando:

sudo chown pi:pi .

Bekijk de website in een browser
Vergeet niet het eigendom van jouw websitedirectory te wijzigen in de www-data-gebruiker en -groep.

sudo chown www-data:www-data /var/www/html

Om de wijzigingen die je hierboven maakt toe te passen, start je Apache opnieuw met deze opdracht.

sudo systemctl restart apache2

Nu kun je een webbowser openen, naar het IP-adres van je Raspberry Pi navigeren en je website bekijken die door Apache wordt bediend.

Nieuw index.html bestand maken
We maken een nieuw bestand index.html bestand aan. Verwijder nu het huidige bestand index.html met:

rm index.html

Zet het bestand in de locatie waar je net het bestand verwijderd hebt. Er hoort een afbeelding bij, deze staat op https://www.raspberrypi.org/app/uploads/2011/10/Raspi-PGB001.png. Om deze naar de directorie te downloaden waarin ook index.html staat geef je het volgende commando:

wget https://www.raspberrypi.org/app/uploads/2011/10/Raspi-PGB001.png

Door een ls -la te doen zie je dat het bestand Raspi-PGB001.png gedownload is. Ook zie je dat de pi-gebruiker eigenaar is van de bestanden in deze map.

Stap 6. Als je wilt kun je nu wijzigingen aanbrengen in de standaard webpagina door de volgende opdracht uit te voeren.

nano /var/www/html/index.html

Weetje
Het is goed te weten dat de webserver alle bestanden in de /var/www/html/ directorie bedient.

Apache webserver als zelfstudie
Apache is een eenvoudige webserver en is geweldig als je HTML, JS of CSS wilt leren. Als je echter op zoek bent naar PHP (gebruikt voor dynamische webpagina’s) waarmee we o.a. de GPIO poorten kunnen aansturen zoals aangegeven in WiringPi, ga dan verder met het volgende gedeelte van onze Raspberry Pi Apache-zelfstudie.

Stap 7. Installeren PHP7 voor Apache

PHP Logo Vector (.SVG) Free Download

PHP staat voor “PHP: Hypertext Preprocessor“, het is een scripting taal voor de server. Hiermee wordt bedoeld dat de PHP-code door de server wordt uitgevoerd (elke keer als de pagina opgevraagd wordt). De cliënt (gebruiker) ziet dit niet.

Let op! Om PHP te kunnen installeren moet de Raspberry Pi van Raspbian versie 10 (Buster) voorzien zijn!

Of je deze versie hebt controleer je met het commando:

cat /etc/os-release

De informatie die vervolgens weergegeven wordt ziet er als volgt uit:

Heb je nog geen buster? Kijk dan hier hoe je kunt upgraden naar Raspbian Buster

Nu we weten dat Raspbian – versie 10 (buster) geïnstalleerd is kunnen we verder.

We gaan nu PHP7.3 op de Raspberry Pi installeren. De extra pakketten die we installeren zijn diegene die vaak worden gebruikt door PHP-applicaties.

Gelukkig voor ons is het installeren van alle pakketten die we nodig hebben een eenvoudig proces, aangezien PHP 7.3 beschikbaar is in de Raspbian-pakketopslag (repository).

Deze tutorial toont de installatie-instructies voor PHP 7.3, maar als je iets anders zoals 7.4 wilt gebruiken, pas dan gewoon de versies in het pakket en de commando’s aan.  

Wat gaan we doen:
1. We voegen de apt source repository toe om de PHP-pakketten te updaten
2. We installeren PHP 7 met de optionele extra’s. In deze tutorial beginnen we met de installatie van versie 7.3

Stap 8. De PHP-repository toevoegen
Hoe krijg je een nieuwe versie van PHP? Gelukkig host de Debian PHP-beheerder een repository de versies van PHP. Deze bevat ook armhf (alleen armv7!) versies. Laten we beginnen met het toevoegen van de repository PGP-sleutel:

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

Voeg de PHP-repository toe aan de apt-bronnen van de Rapberry Pi

echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php7.list

Update vervolgens de repository pakket-index

 sudo apt update

LET OP: In het geval dat apt klaagt over ” De methode driver /usr/lib/apt/methods/https kan niet worden gevonden “, installeer dan de volgende optionele pakketten:

 sudo apt install ca-certificaten apt-transport-https

Installeer de Apache- en FastCGI-module
Vervolgens installeren we Apache en de benodigde extra module voor FastCGI-ondersteuning:

 sudo apt install apache2 libapache2-mod-fcgid

Controleer of apache werkt door met de browser naar http://jouw-raspberrypi-ip-adres te gaan. Als alles goed is en je een reactie krijgt, ga dan verder met de installatie van PHP.

Stap 9. Installeer PHP 7 en algemene modules
Vervolgens zullen we PHP 7.3 installeren met enkele veelgebruikte modules, maar niet met de Apache-moduleversie! In plaats daarvan gebruiken we php-fpm , de FastCGI– versie.

Als je een andere versie nodig hebt voor het geval je code 7.2 of 7.4 vereist, pas dan de versie aan in de pakketnamen en commando’s. Later zullen we laten zien hoe u meerdere PHP-versies parallel kunt laten lopen.

 sudo apt install php7.3-cli php7.3-fpm \
 php7.3-opcache php7.3-curl php7.3-mbstring \
 php7.3-pgsql php7.3-zip php7.3-xml php7.3-gd
Inschakelen van de Fpm proxy-moudle en de php-fpm-configuratie:
 sudo a2enmod proxy_fcgi
 sudo a2enconf php7.3-fpm

En herlaad Apache

 sudo systemctl reload apache2

Stap 10. Installatie testen
Om te testen of de installatie gelukt is geef je het volgende commando:

php7.3 -v

Het zou moeten reageren met iets dat in de buurt komt van

PHP 7.3.27-9+0~20210227.82+debian10~1.gbpa4a3d6 (cli) (gebouwd: 27 februari 2021 15:50:50) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.27, Copyright (c) 1998-2018 Zend Technologies
met Zend OPcache v7.3.27-9+0~20210227.82+debian10~1.gbpa4a3d6, Copyright (c) 1999-2018, door Zend Technologies

Test de weergave van een PHP-pagina
Maak met nano of een andere editor ”test.php” aan in /var/www/html met je favoriete editor, zet hierin de volgende tekst:

<?php phpinfo (); ?>

Geef in je browser het volgende: 

http://jouw-raspberrypi-ipadres/test.php 

Je browser zou nu de PHP-informatiepagina moeten tonen met allerlei details.

De Apache webserver is nu klaar voor gebruik.

Have A Nice Day!

2 Reacties

Reacties zijn gesloten.