Nginx - Treats PHP als binäre
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)
hochladenWenn 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;
}
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.