Pergunta

Estamos executando Nginx + FastCgi como o backend para o nosso site Drupal. Tudo parece funcionar como bem, exceto para esta url. http: ///sites/all/modules/tinymce/tinymce/jscripts/tiny_mce/plugins/smimage/index.php

(Usamos módulo TinyMCE em Drupal, e o url acima é invocado quando usuário tentar carregar uma imagem)

Quando estávamos usando Apache, tudo estava funcionando bem. No entanto, trata nginx que acima de url binário e tenta fazer o download. (Nós verificamos que o arquivo apontado pelo url é um arquivo PHP válido)

Qualquer idéia que poderia estar errado aqui?

Eu acho que é algo a ver com a configuração NGINX, mas não inteiramente certo o que é.

Qualquer ajuda é muito apreciada.

Config: Aqui está o trecho do arquivo de configuração nginx:

      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;
       }
Foi útil?

Solução

Faça it

location ~ \.php$ {

em vez de

location ~ .php$ {

Outras dicas

Se isso não fazê-lo, também não se esqueça que você tem fastcgi em execução na porta 8888. Você pode verificar isso com:

netstat -la | grep :8888

Você está bem, se você receber uma resposta como:

tcp        0      0 localhost:9000          *:*                     LISTEN

Ou tente o seguinte e procurar o qual porta ele está escutando em:

netstat -la | grep LISTEN

Talvez o arquivo php está funcionando, mas a geração de um arquivo binário. É este script gerar uma imagem? Difícil dizer sem ver algum de configuração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top