We gaan nu over tot het installeren van de webserver pakketten.
sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-mcrypt php7.0-mysql php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip
Installeer MariaDB SQL server:
sudo apt-get install mariadb-server
Wijzig een aantal beveiliging instellingen voor MariaDB:
sudo mysql_secure_installation
Beantwoord de vragen die gesteld worden op deze manier: (+ enter staat voor de enter toets op uw toetsenbord)
Enter current password for root: druk op enter
Set root password: N + enter
Remove anonymous users: y + enter
Disallow root login remotely: y + enter
Remove test database: y + enter
Reload privilege tebles: y + enter
Installeren van NginX web server:
sudo apt-get install -t stretch nginx
Configureren van NginX web server:
sudo nano /etc/nginx/nginx.conf
Zoek in deze file de volgende regel op en zet er een # voor:
keepalive_timeout 65;
Voeg direct na die regel het volgende toe:
client_header_timeout 10;
client_body_timeout 10;
keepalive_timeout 10 10;
send_timeout 10;
Vind deze regel in hetzelfde bestand:
gzip_disable "msie6";
Voeg direct na die regel het volgende toe:
gzip_min_length 1100;
gzip_vary on;
gzip_proxied any;
gzip_buffers 16 8k;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_types text/plain text/css applciation/json application/x-javascript text/xml application/xml
application/rss+xml text/javascript images/svg+xml application/x-font-ttf font/opentype
application/vnd.ms-fontobject;
Vind deze regel in hetzelfde bestand en haal het # voor die regel weg en sla het bestand op de gebruikelijke wijze op.
server_names_hash_bucket_size 64;
Open het volgende bestand:
sudo nano /etc/nginx/fastcgi_params
Controleer of dit bestand de volgende regels bevat. Voeg eventueel ontbrekende regels toe of wijzig bestaande regels en sla het bestand op.
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
We gaan nu de webserver testen, maar eerst gaan we de user die u in het voorgaande deel heeft aangemaakt toevoegen aan de groep www-data.
sudo usermod -a -G www-data {USER-NAAM}
exec su -l $USER
Ga nu in uw browser naar het LOKALE IP adres van uw Raspberry Pi. Als alles goed gegaan is ziet u nu de welkomst pagina van NGINX
Gefeliciteerd, de webserver werkt! Maar dit is natuurlijk niet de website die u wilt, dus gaan we een aantal zaken instellen en configureren.
We gaan nu de locatie waar de web bestanden opgeslagen worden een eigen plekje geven. Hiervoor gaan we eerst de standaard www map verwijderen met:
sudo rm -rf /var/www/*
We maken nu de map aan waar de log bestanden voor deze website geplaatst worden, zo zijn de juiste log bestanden makkelijk te vinden. (LET OP!! Verander {UW-DOMEIN.COM} in uw eigen domein naam)
sudo mkdir -p /var/www/{UW-DOMEIN.COM}/logs
De volgende map die we aanmaken is een RW map. Hier kan het systeem zijn output plaatsen. Pas ook dit commando aan met de naam van uw domein!
sudo mkdir -p /var/www/{UW-DOMEIN.COM}/RW
Nu maken we de map aan waar uw website in geplaatst word
sudo mkdir -p /var/www/{UW-DOMEIN.COM}/public-html
Omdat we al deze mappen aangemaakt hebben via het sudo commando, moeten we de eigenaar van deze mappen gaan wijzigen. Dat doen we met:
sudo chown -R www-data:www-data /var/www/
Omdat we natuurlijk zelf ook toegang willen hebben tot deze mappen, moeten we de bestandsrechten aanpassen.
sudo chmod -R 0750 /var/www/
sudo chmod g+rw -R /var/www
sudo chmod g+s -R /var/www
Maak nu een configuratie bestand aan voor uw website: (LET OP!!! Pas ook hier het commando aan met de naam van uw domein)
sudo nano /etc/nginx/sites-available/{UW-DOMEIN.COM}
In dit nieuwe bestand moet u de volgende regels plaatsen. Verander ook hier de domein naam!!
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name {UW-DOMEIN.COM} WWW.{UW-DOMEIN.COM};
index index.php index.html index.htm;
root /var/www/{UW-DOMEIN.COM}/public-html;
charset utf-8;
fastcgi_intercept_errors on;
error_log /var/www/{UW-DOMEIN.COM}/logs/error.log error;
access_log /var/www/{UW-DOMEIN.COM}/logs/access.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Nu moeten we een (symbolische) link aanmaken naar deze configuratie file zodat de NGINX server het kan vinden. Dat doen we door met volgende commando. Wijzig ook hier de domein naam!!
sudo ln -s /etc/nginx/sites-available/{UW-DOMEIN.COM} /etc/nginx/sites-enabled/{UW-DOMEIN.COM}
Nu moeten we nog wel de link naar de oude standaard website die we verwijderd hebben wissen.
sudo rm /etc/nginx/sites-enabled/default
Omdat we willen testen of er geen fouten in de configuratie zitten:
sudo nginx -t
Als het goed is krijgt u nu de volgende output te zien: (dit dus NIET intypen)
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mocht er toch een fout ingeslopen zijn dan krijg u hier een foutmelding te zien, loop dan de vorige stappen na om te zien waar u een fout gemaakt heeft en herstel deze.
Is alles in orde dan herstarten we de server:
sudo /etc/init.d/nginx restart sudo /etc/init.d/php7.0-fpm restart
Dit is een vrij ingewikkelde manier om de server te herstarten. Dat kan makkelijker door een alias aan te maken. Dat doen we in het volgende bestand.
nano ~/.bash_aliases
Voeg deze regels in:
alias sudo='sudo '
alias webrestart='bash -c "/etc/init.d/nginx restart && /etc/init.d/php7.0-fpm restart"'
Met het volgende commando's activeren we het alias.
exec bash
source ~/.bashrc
. ~/.bashrc
Vanaf nu kunt u de webserver eenvoudig herstarten met dit commando:
sudo webrestart
Nu gaan we de webserver en php testen. Dat doen we door een php pagina aan te maken. (LET OP!!! Verander ook deze regel in uw eigen domein naam)
nano /var/www/{UW-DOMEIN.COM}/public-html/index.php
In deze pagina plakken we de volgende tekst:
<?php
echo("Test pagina RaspberryPi webserver");
?>
Ga nu in uw browser naar uw website via het LOKALE IP adres van de Raspberry Pi. U krijgt nu deze tekst in uw browser te zien:
RaspberryPi personal server web test.
Klopt dit? Dan heeft u alles goed gedaan!
Ga nu door naar deel 3 van deze handleiding DEEL 3
Dit werk valt onder een Creative Commons Naamsvermelding-NietCommercieel 4.0 Internationaal-licentie.