Nginx está baixando arquivo em vez de fazer consulta MySql

Nginx está baixando arquivo em vez de fazer consulta MySql

Encontro um problema muito estranho quando tento configurar o NGINX para usar PHP e MySQL.

A princípio, tudo parece estar bem e funcionando. Mas essa impressão só dura até que haja uma consulta SQL (pelo menos essa é a minha impressão). E em vez de passar o resultado da consulta para o PHP, sou solicitado a baixar um arquivo com o tipo application/octet-stream.

Quando estou usando SQLite ou nenhum banco de dados, está tudo bem. Alguém tem uma ideia de por que isso está acontecendo?

Quando dou uma olhada nas minhas informações do php, obtenho este resultado:

Arquivos .ini adicionais analisados:

/etc/php/7.0/fpm/conf.d/10-mysqlnd.ini, /etc/php/7.0/fpm/conf.d/10-opcache.ini, /etc/php/7.0/fpm/conf.d /10-pdo.ini, /etc/php/7.0/fpm/conf.d/15-xml.ini, /etc/php/7.0/fpm/conf.d/20-calendar.ini, /etc/php/ 7.0/fpm/conf.d/20-ctype.ini, /etc/php/7.0/fpm/conf.d/20-curl.ini, /etc/php/7.0/fpm/conf.d/20-dom. ini, /etc/php/7.0/fpm/conf.d/20-exif.ini, /etc/php/7.0/fpm/conf.d/20-fileinfo.ini, /etc/php/7.0/fpm/conf .d/20-ftp.ini, /etc/php/7.0/fpm/conf.d/20-gd.ini, /etc/php/7.0/fpm/conf.d/20-gettext.ini, /etc/ php/7.0/fpm/conf.d/20-iconv.ini, /etc/php/7.0/fpm/conf.d/20-imagick.ini, /etc/php/7.0/fpm/conf.d/20- imap.ini, /etc/php/7.0/fpm/conf.d/20-intl.ini, /etc/php/7.0/fpm/conf.d/20-json.ini, /etc/php/7.0/fpm /conf.d/20-mbstring.ini, /etc/php/7.0/fpm/conf.d/20-mcrypt.ini, /etc/php/7.0/fpm/conf.d/20-memcache.ini, / etc/php/7.0/fpm/conf.d/20-mysqli.ini, /etc/php/7.0/fpm/conf.d/20-pdo_mysql.ini, /etc/php/7.0/fpm/conf.d/ 20-pdo_sqlite.ini, /etc/php/7.0/fpm/conf.d/20-phar.ini, /etc/php/7.0/fpm/conf.d/20-posix.ini, /etc/php/7.0 /fpm/conf.d/20-pspell.ini, /etc/php/7.0/fpm/conf.d/20-readline.ini, /etc/php/7.0/fpm/conf.d/20-recode.ini , /etc/php/7.0/fpm/conf.d/20-shmop.ini, /etc/php/7.0/fpm/conf.d/20-simplexml.ini, /etc/php/7.0/fpm/conf. d/20-sockets.ini, /etc/php/7.0/fpm/conf.d/20-sqlite3.ini, /etc/php/7.0/fpm/conf.d/20-sysvmsg.ini, /etc/php /7.0/fpm/conf.d/20-sysvsem.ini, /etc/php/7.0/fpm/conf.d/20-sysvshm.ini, /etc/php/7.0/fpm/conf.d/20-tidy .ini, /etc/php/7.0/fpm/conf.d/20-tokenizer.ini, /etc/php/7.0/fpm/conf.d/20-wddx.ini, /etc/php/7.0/fpm/ conf.d/20-xmlreader.ini, /etc/php/7.0/fpm/conf.d/20-xmlrpc.ini, /etc/php/7.0/fpm/conf.d/20-xmlwriter.ini, /etc /php/7.0/fpm/conf.d/20-xsl.ini

E esta é a minha configuração do mysql (também das informações do PHP):

Configurações do MySQL

Como você pode ver, a estática do mysqlnd mostra 0?!

Estou tentando fazer isso com wordpress e também "Ionizar". Ionize também está me mostrando alguns erros do MySQL:

Erro dentro do Ionize (erro do MySql)

Alguém sabe como resolver (ou pelo menos depurar já que não há erros nos arquivos de log) isso?

Obrigado por qualquer dica!

Responder1

Nos arquivos de configuração do Nginx, localizados em /etc/nginx/nginx.confou /etc/nginx/sites-available/, você tem o protocolo http2 ativado nos arquivos de configuração da porta 80. Basta substituir listen 80 http2;por listen 80;.

Responder2

O nginx não baixa arquivos, apenas envia respostas HTTP.
O Nginx geralmente é responsável por definir o Content-Type:campo no cabeçalho HTTP e, como padrão, o nginx usa umMIMEde application/octet-stream como substituto quando não consegue determinar o tipo de conteúdo.
Quando um navegador recebe um cabeçalho com este tipo de conteúdo, ele solicitará a ação de download, já que application/octet-stream é o tipo MIME para arquivos binários.
Isso para mim é uma indicação de que o nginx não está configurado corretamente porque, quando fastcgi_passestá corretamente, ele retorna o html/plaincabeçalho.
Você também pode definir o tipo MIME diretamente

http://nginx.org/en/docs/http/ngx_http_core_module.html#types

ou este trecho definirá o MIME padrão para nginx comotext/plain

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
# change application/octet-stream to text/plain
sudo sed -i 's/default_type application\/octet-stream/default_type text\/plain/' 
    /etc/nginx/nginx.conf

Além disso, se você configurar o nginx e o PHP corretamente e enviar os Content-Type:cabeçalhos corretos, navegadores como o Chrome continuarão a armazenar em cache os valores anteriores - portanto, continuarão solicitando um download.
Isso pode ser superado abrindo as ferramentas do desenvolvedor, acessando as configurações das próprias ferramentas do desenvolvedor e clicando emdesabilitar cache(enquanto as ferramentas de desenvolvimento estão abertas)

informação relacionada