banner

Nginx & PHP 7.0

Auf meinen Raspberry Pi mit dem Bertriebssystem Debian 9 Stretch will ich den Webserver nginx und PHP 7.0 installieren.

Zur Vorbereitung bringe ich die Software auf den aktuellen Stand.
Dazu werden als erstes die Paketlisten neu eingelesen:
sudo apt-get update

Danach werden installierte Pakete auf eine verbesserte Version geprüft und ggf. aktualisiert und neue Pakete werden evtl. installiert oder entfernt.
sudo apt-get dist-upgrade

Ein Firmware- und Kernel-Update mit rpi-update birgt evtl. Risiken:
https://www.elektronik-kompendium.de/sites/raspberry-pi/2006061.htm

Bei mir gab es damit kein Problem:
sudo rpi-update
sudo reboot

Nach diesen Vorbereitungen installiere ich PHP 7.0:
sudo apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-common php7.0-curl php7.0-dev php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-json php7.0-tidy php7.0-sqlite3 php7.0-opcache php7.0-intl php7.0-zip php7.0-xml php7.0-mbstring php-pear

Mit dem Anzeigen der PHP Version prüfe ich kurz die Installation:
php -v

Im Anschluss an der PHP 7.0 Installation installiere ich den Webserver nginx :
sudo apt-get install -t stretch nginx-full

Auch hier prüfe ich kurz die Installation:
nginx -v

Den Webserver nginx starte ich mit:
sudo /etc/init.d/nginx start

und rufe ihn im Browser auf:
entweder mit http://localhost/ oder über die IP-Adresse

Wenn der Webserver Nginx von einem PC aus im selben Netzwerk aufgerufen werden soll, dann kann das über die IP-Adresse erfolgen. Die IP-Adresse des Raspberry Pi wird abgefragt mit:
hostname -I
oder dem Advanced IP Scanner:
http://www.advanced-ip-scanner.com/de/

Nachdem nginx installiert ist sollte im Browser „Welcome to nginx“ zu sehen sein:

In der nginx-Konfigurationsdatei muss ich mein PHP 7.0 berücksichtigen.
Bevor die Datei geändert wird, erstelle ich  sicherheitshalber ein Backup:
cd /etc/nginx/sites-available
sudo cp default default-backup

Die Änderung erfolgt mit dem Editor nano:
sudo nano /etc/nginx/sites-available/default

In der Zeile:
index index.html index.htm index.nginx-debian.html;
ergänze ich index.php:
index index.php index.html index.htm index.nginx-debian.html;

Eine weitere Änderung erfolgt in den Zeilen

# pass PHP scripts to FastCGI server
#
#location ~ .php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
#}

Es wird in einigen Zeilen die Raute # entfernt bzw. das Script ergänzt:

# pass PHP scripts to FastCGI server
#
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

Mit Strg-X, dann J und Enter speicher ich die Datei.

Anschließend starte ich wieder nginx und php 7:
sudo /etc/init.d/php7.0-fpm restart
sudo /etc/init.d/php7.0-fpm restart

             pi@raspberrypi:/etc/ngi:nx/sites-available $ sudo /etc/init.d/nginx restart
             [ ok ] Restarting nginx (via systemctl): nginx.service.
             pi@raspberrypi:/etc/nginx/sites-available $ sudo /etc/init.d/php7.0-fpm restart
             [ ok ] Restarting php7.0-fpm (via systemctl): php7.0-fpm.service.
             pi@raspberrypi:/etc/nginx/sites-available $

Mit phpinfo() will ich Daten zum installierten PHP 7.0 aufrufen.
Dazu wird im html-Verzeichnis eine index.php Datei erstellt:
cd /var/www/html
sudo nano index.php

In die leere Datei schreibe ich:
<?php echo phpinfo(); ?>

Mit Strg-X, dann J und Enter wird die Datei gespeichert.

Mit http://localhost/index.php bzw. über die IP-Adresse ist jetzt die PHP-Infoseite zu sehen.
Der nginx Webserver und PHP 7.0 ist erfolgreich auf meinem Raspberry Pi installiert.

.

.