GNU/Linux >> LINUX-Kenntnisse >  >> Linux

NginX + PHP-FPM zeigt leere PHP-Seiten an

Entsprechend Ihrer Konfiguration haben Sie zwei server{...} Blöcke, die genau gleich sind. Bevor ich also anfange zu erklären, was mit Ihrer Konfiguration nicht stimmt, müssen Sie weitere Details angeben. Unten finden Sie einige Hinweise zur Fehlerbehebung.

Fürs Erste werde ich meine hier posten und ein paar directives hervorheben das spielt eine Rolle.

Meine /etx/nginx/conf.d/default.conf sieht wie folgt aus

server {

  # Replace this port with the right one for your requirements
  listen 80;

  # Multiple hostnames separated by spaces.  Replace these as well.
  server_name mydomain.nl;

  root /var/www/mydomain.nl/public_html/;

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

  index index.php index.html;

  location / {
    # This is cool because no php is touched for static content.
    try_files $uri $uri/ /index.php;
  }

  location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
    expires max;
  }

  location ~* \.php$ {
    try_files $uri =404

    fastcgi_intercept_errors on;

    fastcgi_index   index.php;
    fastcgi_pass    unix:/var/run/php5-fpm.sock;

    include fastcgi_params;

    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
  }

  location ~ /\.(ht|ssh) {
    deny  all;
  }

  location /status {
    include fastcgi_params;
    fastcgi_pass    unix:/var/run/php5-fpm.sock;
  }

}

Die folgenden Direktiven sind wichtig:

server_name mydmaiin.nl; <-- Dies ist für jeden Serverblock eindeutig.

root /var/www/mydomain.nl/public_html/; <-- Dies ist der Stamm, der Ihre Website/Daten enthält.

Der Rest ist trivial.

Nehmen wir also die /etc/php-fpm.d/www.conf ablegen und prüfen. Sie haben sich entschieden, einen Datei-Socket

zu verwenden

listen = /var/run/php-fpm/php-fpm.sock <-- php-fpm kommuniziert mit nginx durch diese Datei. Das ist also mein www.conf Datei, es sei denn, Sie haben etwas verpasst. Ich habe alle kommentierten Zeilen herausgefiltert. Das sind also die unkommentierten Zeilen.

[www]
listen = /var/run/php5-fpm.sock
listen.allowed_clients = 127.0.0.1
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
user = apache
group = apache
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
security.limit_extensions = .php
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session

Fehlerbehebung

1) Siehe Verzeichnisberechtigungen. In diesem Fall /usr/share/nginx/html

2) Siehe php-fpm-Fehlerprotokollierung. Überprüfen Sie, ob die Konfigurationsdatei ordnungsgemäß geladen wird, indem Sie

ausführen

php-fpm -y /etc/php-fpm.conf

3) Ändern Sie log_level = debug in /etc/php-fpm.conf

4) Kommen Sie mit weiteren Details zurück!


Linux
  1. Verwendung von PHP in HTML-Seiten

  2. So installieren Sie LEMP (Linux, Nginx, MariaDB &PHP-FPM) auf einem CentOS 7 VPS

  3. Installieren Sie OwnCloud 7 mit Nginx und PHP-FPM auf einem Ubuntu VPS

  4. So konfigurieren Sie Nginx zum Ausführen von PHP mit PHP-FPM

  5. Eingeschaltetes cgi.fix_pathinfo immer noch gefährlich in Nginx?

Installation von Nginx mit PHP (als PHP-FPM) und MariaDB (LEMP) auf Debian 8

Installieren Sie Nginx + MariaDB + PHP auf Fedora 27 / Fedora 26

So installieren Sie Nginx + PHP5-FPM + MySQL unter LinuxMint 18 / LinuxMint 17

So installieren Sie Nginx mit PHP-FPM unter Debian 10

So konfigurieren Sie PHP-FPM mit NGINX

So installieren Sie LEMP (Nginx, MariaDB, PHP) auf Centos 7