it-swarm.com.de

Nginx lädt PHP herunter, anstatt es auszuführen

Ich habe einen Nginx-PHP-Server auf einem Linux-REHL-Rechner eingerichtet. Wenn Sie auf HTML-Dateien zugreifen, ist alles in Ordnung, aber wenn Sie versuchen, auf PHP-Dateien zuzugreifen, wird die Datei heruntergeladen, anstatt ausgeführt zu werden.

Das ist meine nginx.conf:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

... und das ist der Serverblock:

server {
    listen       80;
    server_name  {mywebsitename};

    #access_log  logs/Host.access.log  main;

    location / {
        root   /usr/share/nginx/html/{mywebsitename}/;
    }

    location /ngx_status_2462 {
      stub_status on;
      access_log   off;
      allow all;
    }

    location ~ \.php$ {
#                fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/{mywebsitename}$fastcgi_script_name;
        include fastcgi_params;
        }

        error_page  404              /404.html;

        location = /404.html {
            root   /usr/share/nginx/html;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
9
Sharon Gil

Ich hatte genau das gleiche Problem. Ich habe mit Ubuntu 12.04 und Linux Mint 14 so unterschiedliche Betriebssysteme verwendet, aber wahrscheinlich die gleichen Probleme.

Es können einige Probleme auftreten. Zunächst muss php5-fpm installiert sein (FastCGI Process Manager). Ich habe versucht, es mit meiner Standardversion von PHP auszuführen, aber es hat nicht funktioniert - http://www.php.net/manual/en/install.fpm.php

Ich hatte auch Apache installiert, und selbst wenn es nicht lief, musste es einen Konflikt gegeben haben, da ich nach der Deinstallation von Apache die PHP -Dateien ausführen konnte.

Ich würde mir auch diese Zeile anschauen

fastcgi_pass 127.0.0.1:9000;

Und überlegen Sie, es zu ändern

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

Hier finden Sie eine detaillierte Anleitung zur Installation von Nginx und PHP5-FPM für RHEL (und andere Betriebssysteme).

http://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-Fedora-centos-red-hat-rhel/

7
mr mojo risin

Dies kann an dem Mimetyp liegen, den Sie senden:

default_type  application/octet-stream;

Siehe: http://mimeapplication.net/octet-stream

8
gitaarik

Sie müssen den Benutzer in dieser Datei a/etc/php-fpm.d/www.conf auf nginx anstelle von Apache ändern

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: Apache Choosed to be able to access some dir as httpd
;user = Apache
user = nginx
; RPM: Keep a group allowed to write in log dir.
;group = Apache
group = nginx

und natürlich neu starten service php-fpm restart und service nginx restart

1
Emax

Auskommentieren default_type application/octet-stream;

0
Gene