Quick Setup: PHP7 + Nginx + PHP-FPM

Der Release von PHP 7.0 rückt immer näher! Mittlerweile sind wir beim fünften Release Candidate angekommen, den wir in diesem Quick Setup zusammen mit Nginx, Fast_cgi und PHP-FPM installieren werden. Zusätzlich sind in der späteren Nginx Site Config noch ein paar TYPO3 Flow 3.x spezifische Redirect Rules definiert, damit das TYPO3 Flow Framework funktioniert… Diese zusätzlichen Zeilen sind markiert und können getrost weggelassen werden falls nicht mit TYPO3 Flow gearbeitet wird.

In diesem Quick Setup Tutorial:
– Nginx 1.9.5 Mainline
– PHP7.0 RC5 von dotdeb
– PHP7-FPM sowie Fast_CGI
– Debian 8 Jessie OS

Die source.list vorbereiten

Zum einen fügen wir das dotdeb Archiv unserer source.list hinzu, um die PHP7 Pakete zu erhalten.
Desweiteren fügen wir Source Listen von nginx hinzu, um die aktuellste Version aus dem Mainline Branch zu erhalten

cd /opt

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key

wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg

# Folgende Zeilen der /etc/apt/source.list hinzufügen 
# Hinweis: Dies ist für Debian 8 Jessie
deb http://dotdeb.netmirror.org/ stable all
deb-src http://dotdeb.netmirror.org/ stable all

deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

PHP 7.0 / Nginx Installation

apt-get update
apt-get install php7.0 php7.0-fpm
apt-get install php-mysql
apt-get install nginx

PHP7 & php7-fpm Konfiguration

Änderungen an Datei: /etc/php/7.0/fpm/pool.d/www.conf

# Sicherstellen, dass user und group auf www-data gesetzt sind
user = www-data
group = www-data

# Listing Mode von Socket auf TCP umstellen
listen = 127.0.0.1:9000
;listen = /run/php/php7.0-fpm.sock

Nginx FastCGI Konfiguration

Datei: /etc/nginx/conf.d/001-my-domain.conf

server {
        listen 80;
        server_name _;
        root /var/www/Web;
        index index.php index.html index.htm;


        # TYPO3 Flow Specific
        location ~ "^/_Resources/Persistent/" {
                access_log off;
                log_not_found off;
                expires max;

                rewrite "(.{40})/.+\.(.+)" /_Resources/Persistent/$1.$2 break;
                rewrite "([a-z0-9]+/(.+/)?[a-f0-9]{40})/.+\.(.+)" /_Resources/Persistent/$1.$2 break;
        }

        # TYPO3 Flow Specific
         location ~ "^/_Resources/" {
                access_log off;
                log_not_found off;
                expires max;
                break;
        }


        location / {
                rewrite ".*" /index.php last; # TYPO3 Flow Specific
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                fastcgi_param                FLOW_CONTEXT       Development;
                fastcgi_param                FLOW_REWRITEURLS   1;
                autoindex off;

                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_index index.php;
        }
}

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter.

Schließen