Frage

Wir laufen Nginx + FastCGI als Backend für unsere Drupal-Website. Alles scheint wie gut, außer für diese eine URL zu arbeiten. http: ///sites/all/modules/tinymce/tinymce/jscripts/tiny_mce/plugins/smimage/index.php

(Wir verwenden TinyMCE-Modul in Drupal, und die URL oben aufgerufen wird, wenn Benutzer versucht, ein Bild)

hochladen

Wenn wir Apache verwendet haben, alles funktionierte gut. nginx behandelt jedoch, dass über url Binary und versucht, es zum Download. (Wir haben festgestellt, dass die Datei von der URL ist eine gültige PHP-Datei angegeben)

Jede Idee, was könnte hier falsch sein?

Ich denke, es ist etwas, mit der NGINX Konfiguration zu tun, aber nicht ganz sicher, was das ist.

Jede Hilfe wird sehr geschätzt.

Config: Hier ist der Ausschnitt aus der nginx Konfigurationsdatei:

      root /var/www/;
       index index.php;

       if (!-e $request_filename) {
               rewrite ^/(.*)$ /index.php?q=$1 last;
       }

       error_page 404 index.php;
       location ~*
\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$
{
               deny all;
       }

       location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
             access_log        off;
           expires           7d;
       }

       location ~* ^.+\.(css|js)$ {
             access_log        off;
           expires           7d;
       }

       location ~ .php$ {
           include /etc/nginx/fcgi.conf;
           fastcgi_pass 127.0.0.1:8888;
           fastcgi_index index.php;
           fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
           fastcgi_param  QUERY_STRING     $query_string;
           fastcgi_param  REQUEST_METHOD   $request_method;
           fastcgi_param  CONTENT_TYPE     $content_type;
           fastcgi_param  CONTENT_LENGTH   $content_length;
       }

       location ~ /\.ht {
               deny  all;
       }
War es hilfreich?

Lösung

Machen Sie es

location ~ \.php$ {

statt

location ~ .php$ {

Andere Tipps

Wenn das tat es nicht, auch sicher sein, dass Sie fastcgi läuft auf Port 8888. haben Sie, dass der Check mit:

netstat -la | grep :8888

Sie sind in Ordnung, wenn Sie eine Antwort wie bekommen:

tcp        0      0 localhost:9000          *:*                     LISTEN

Oder versuchen Sie die folgende und suchen Sie nach dem Port er hört auf:

netstat -la | grep LISTEN

Vielleicht ist die PHP-Datei ausgeführt wird, sondern eine binäre Datei zu erzeugen. Ist das Skript Erzeugen eines Bildes? Schwer zu sagen, ohne etwas Config zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top