PHP Unterstützung für nginx einrichten.
Zuerst muss nginx vernünftig laufen. Mehr dazu hier
Aus dem Repo PHP installieren. Bei Debian Strech ist PHP5 das neueste was verfügbar ist (Stand April 2018)
sudo apt- get install php5-fpm php5-sqlite php5-curl php5-gd -y |
Wenn die installation abgeschlossen ist, kann man sich zum test mal die Version anzeigen lassen.
pi@RPi:~ $ php -v PHP 5.6.33-0+deb8u1 (cli) (built: Jan 9 2018 05:01:31) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies |
Per Default ist in der php.ini
eine Einstellung vorhanden, die sehr unsicher ist und potetiellen Angreifern das ausführen beliebeiger Scripte ermöglicht. Daher mit dem Befhler die php.ini
zum Bearbeiten öffnen
sudo nano /etc/php5/fpm/php.ini |
Bei PHP7 ist der Pfad entpsrechend
/etc/php5/fpm/php.ini
Dort gibt es eine Zeile mit dem Parameter cgi.fix_pathinfo
, der mit einem Semikolon auskommentiert ist. Wir kommentieren diese Zeile ein und entfernen also das Semikolon und setzen den Wert auf "0
"
cgi.fix_pathinfo=0 |
Im Anschluss muss man den PHP Service neu starten, damit die geänderte Einstellung übernommen wird.
sudo systemctl restart php5-fpm |
Der rest steht hier https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04
Testen ob es funktioniert.
Dazhu eine leere test.php Datei anlegen und den Inhalt hier einfügen
<?php header ( 'content-type: text/plain;' ); var_export($_SERVER) ?> |
Dann kann man
- /test.php
- /test.php/foo
- /test.php/foo/bar.php
- /test.php/foo/bar.php?v=1
eingeben und beobachten wie sich die Ausgabe dynamisch ändern sollte.
No Comments