Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
23.03.2017, 01:22:04

Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
Statistiken
  • Beiträge insgesamt: 447642
  • Themen insgesamt: 36180
  • Heute online: 273
  • Am meisten online: 578
  • (15.01.2017, 16:58:34)
Benutzer Online
Mitglieder: 9
Gäste: 190
Gesamt: 199

Autor Thema: [gelöst]  Kriege Nginx mit PHP7 nicht korrekt zum Laufen  (Gelesen 227 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[gelöst] Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« am: 10.01.2017, 22:33:26 »
Liebe Foristen,
ich wende mich hiermit an Euch, weil ich inzwischen ziemlich von meinem lokalen Webserver und dem Zusammenspiel mit PHP (inzwischen sollte es Version 7 sein) genervt bin.
Ich hatte lange Apache 2 mit PHP5 benutzt, was auch lief, und wollte dann auf Nginx umsteigen. Das klappte nach langem Hin und Her auch (hatte zuerst immer 403-Fehler). Jetzt wollte ich für ein neues Projekt auch auf PHP-Version 7 umsteigen und ich kriege es nicht zum Laufen mit Nginx: PHP wird nicht interpretiert, obwohl es imho läuft und die NGinx-Konfig imho stimmt. 
Ich habe viel gegoogelt und habe das Problem, dass man viel auf ältere Anleitungen trifft (PHP 5, ältere Nginx-Versionen usw.) und mir ein "Best Practice"-Vorschlag für eine saubere und sichere Installation von Nginx im Zusammenspiel mit PHP7 und MySQL fehlt. Nginx als Service? PHP über FastCGI Process Manager? Dateirechte und Standarduser?
Ich habe die Befürchtung, dass ich schon diverse Einstellungen falsch gesetzt habe uns es irgendwo gar nicht mehr passt.

Vielen Dank für Eure Hilfe.

Linux Mint 18, Linux Kernel 4.4.0

[edit 11.1.2017: gelöst]
« Letzte Änderung: 11.01.2017, 21:27:36 von RobertH »

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #1 am: 10.01.2017, 23:31:08 »
Du solltest schon mal deine nginx.conf hier posten, sonst gibt's auch keine Hilfe (wie auch).

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #2 am: 10.01.2017, 23:52:16 »
/etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

server {
listen 80;
server_name localhost;
root /var/www/html;

location / {
        index index.html index.htm index.php;

}
}

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-available/default
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP

index index.html index.htm index.php index.nginx-debian.html;

server_name localhost;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php7.0-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #3 am: 11.01.2017, 02:29:40 »
Ich denke dein Pfad zum PHP7 Socket ist falsch, bei mir lautet er
server unix:/var/run/php/php7.0-fpm.sock;Schau doch mal ob dein Socket Pfad richtig ist. Ausserdem schau auch noch wer der Besitzer des Sockets ist, das muss, wie in deiner nginx.conf angegeben, www-data sein.

Ansonsten hast du in der nginx.conf einen Server Block der sich mit dem aus /etc/nginx/sites-available/default überschneidet.
« Letzte Änderung: 11.01.2017, 02:35:44 von NeXxGeN »

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #4 am: 11.01.2017, 13:36:40 »
Vielen Dank, leider hat das nicht geklappt. Den Pfad habe ich korrigiert (ist hier wohl auch falsch: https://wiki.ubuntuusers.de/nginx/#PHP-mit-dem-Paket-php5-fpm) und der Benutzer von nginx und php7.0-fpm ist www-data.
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     ZEIT+ BEFEHL     
 4025 www-data  20   0  246008   6892   1528 S   0,0  0,1   0:00.00 php-fpm7.0 
 4026 www-data  20   0  246008   6892   1528 S   0,0  0,1   0:00.00 php-fpm7.0 
 4034 www-data  20   0  125444   3192   1556 S   0,0  0,0   0:00.00 nginx       
 4035 www-data  20   0  125444   3192   1556 S   0,0  0,0   0:00.02 nginx       
 4036 www-data  20   0  125444   3192   1556 S   0,0  0,0   0:00.02 nginx       
 4037 www-data  20   0  125444   3192   1556 S   0,0  0,0   0:00.03 nginx
Noch eine Idee?

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #5 am: 11.01.2017, 18:48:28 »
Ich habe mir noch einmal deinen php Block angesehen. Ich weiß nicht was in der snippets/fastcgi-php.conf; steht, aber in den PHP block gehören auch noch folgende angaben:
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #6 am: 11.01.2017, 20:50:28 »
Ja, das ist bei mir wohl in der snippets/fastcgi-php.conf eingetragen
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;
Btw: ich habe keine Ahnung, warum  die Konfiguration auf so verschiedene Dateien aufgeteilt ist. Mir fehlt da die Best-Practice-Erfahrung. Wenn du das anders machen würdest, könnte ich das auch so übernehmen.

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #7 am: 11.01.2017, 20:52:07 »
So, jetzt läuft PHP! Habe den doppelten server { } Bereich rausgenommen und jetzt läuft PHP! Ist komisch, weil da nie ne Fehlermeldung kam...
Jetzt muss ich noch die Datenbank zum Laufen bringen, das geht nämlich auch gerade nicht.

Re: Kriege Nginx mit PHP7 nicht korrekt zum Laufen
« Antwort #8 am: 11.01.2017, 21:57:06 »
Falls es dir hilft, das ist mein PHP Block. Nicht alles darin wird für dich interessant sein, da es spezielle Angaben bezüglich der Buffer sind.

    location ~ \.php$
    {
        try_files $uri $uri/ =404;
        client_max_body_size    100m;
        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;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        include fastcgi_params;
        fastcgi_param PHP_VALUE "session.auto_start=0
            session.use_cookies=0";
        fastcgi_pass_header X-Session-Token;
    }