Halfje-Bruin

Halfje-Bruin

Een collectie interessante ditjes en datjes.

Kees de Bruin

3 minuten leestijd

Een website is een goede manier om informatie beschikbaar te maken voor anderen, maar ook om informatie voor jezelf te archiveren. Nu doe ik dat al door op m’n eigen website deze artikelen te plaatsen, maar een lokale webserver kan ook gebruikt worden om bijvoorbeeld de resultaten van poudriere te bekijken, een lokale cloud te draaien met behulp van nextcloud, of een web interface aan te bieden voor de git repositories.

Apache of Nginx

Voor het draaien van een website zijn er een aantal mogelijkheden maar met name apache en nginx worden hier veelvuldig voor gebruikt. Elk heeft zo zijn voor- en nadelen maar zelf heb ik gekozen voor apache aangezien ik daar wat meer ervaring mee heb dan met nginx.

Installatie

Installatie van apache is vrij eenvoudig. Het begint met het bouwen van de juiste package en dan is het een kwestie van installeren. Bij de opties moeten de volgende features aangezet zijn: SSL, MPM_SHARED. Voor de overige opties zijn de defaults voldoende.

# echo www/apache24 >> /usr/local/etc/poudriere.d/12amd64.pkglist  
# poudriere ports -u  
# poudriere options -c www/apache24  
# poudriere bulk -j 12amd64 -f /usr/local/etc/poudriere.d/12amd64.pkglist

Na het bouwen kan het package geïnstalleerd worden.

# pkg install www/apache24

Configuratie

Met het commando

# service apache24 onestart

kunnen we controleren of de software correct is geïnstalleerd. Open een browser en ga naar http://filevault.home.lan/ en dan moet de volgende tekst getoond worden.

It works!

We stoppen de apache server met service apache24 onestop en gaan verder met het installeren van onder andere PHP. Maar eerst voeren we nog even onderstaand commando uit om bij een herstart apache automatisch op te starten.

# sysrc apache24\_enable="YES"

Installatie van PHP

PHP is een veelgebruikte scripttaal voor het schrijven van interactive webpagina’s. In dit geval installeren we een van de laatste versie van PHP, namelijk 7.2. Er is al wel een nieuwere versie maar deze wordt nog niet veel ondersteund door de diverse PHP applicaties.

Als eerste moeten we een aantal PHP packages toevoegen aan ons build systeem en deze bouwen. Tevens voegen we gelijk de apache module voor ondersteuning van PHP toe.

# echo lang/php72 >> /usr/local/etc/poudriere.d/12amd64.pkglist  
# echo lang/php72-extensions >> /usr/local/etc/poudriere.d/12amd64.pkglist  
# echo www/mod\_php72 >> /usr/local/etc/poudriere.d/12amd64.pkglist  
# poudriere options -c lang/php72 lang/php72-extensions www/mod\_php72  
# poudriere bulk -j 12amd64 -f /usr/local/etc/poudriere.d/12amd64.pkglist

Na het bouwen van de packages kunnen we deze vervolgens installeren.

# pkg update && pkg install php72 mod\_php72

Daarnaast moeten we ook nog een aantal van de PHP extensies installeren.

# pkg install php72-mbstring php72-zlib php72-curl php72-gd php72-json

Voor het gebruik van PHP binnen apache moet we de geïnstalleerde module toevoegen aan de apache configuratie. Voeg aan het bestand /usr/local/etc/apache24/httpd.conf de volgende regel toe:

LoadModule php7\_module        libexec/apache24/libphp7.so

Tevens moeten we ervoor zorgen dat .php bestanden als zodanig worden behandeld. Hiervoor creëren we het bestand /usr/local/etc/apache24/modules.d/080_mod_php.conf met de volgende inhoud:

<FilesMatch "\\.php$">  
    SetHandler application/x-httpd-php  
</FilesMatch>  
  
<FilesMatch "\\.phps$">  
    SetHandler application/x-httpd-php-source  
</FilesMatch>  

Om een en ander te testen voeren we de volgende commando’s uit om apache opnieuw te starten en maken we een simpele testpagina.

# echo '<?php phpinfo(); ?>' | tee -a /usr/local/www/apache24/data/info.php  
# service apache24 restart

Als we nu naar http://filevault.home.lan/info.php gaan, dan moet nu de status pagina voor de PHP ondersteuning binnen apache getoond worden.

In een volgend artikel ga ik verder met het toevoegen van SSL ondersteuning.

Recente berichten

Blog Series

Categorieën

Over Mij

Amateur fotograaf, korfballer en een liefhebber van lekker eten.