Nginx está descargando un archivo en lugar de realizar una consulta MySql

Nginx está descargando un archivo en lugar de realizar una consulta MySql

Encuentro un problema muy extraño cuando intento configurar NGINX para usar PHP y MySQL.

Al principio todo parece estar bien y funcionando. Pero esa impresión sólo dura hasta que hay una consulta SQL (al menos esa es mi impresión). Y en lugar de pasar el resultado de la consulta a PHP, se me solicita que descargue un archivo del tipo application/octet-stream.

Sin embargo, cuando uso SQLite o no uso ninguna base de datos, todo está bien. ¿Alguien tiene una idea de por qué está pasando esto?

Cuando miro mi información de php, obtengo este resultado:

Archivos .ini adicionales analizados:

/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

Y esta es mi configuración de MySQL (también de información de PHP):

Configuración de MySQL

Como puede ver, ¿la estática de mysqlnd muestra 0?

Estoy intentando hacer esto con WordPress y también con "Ionizar". Ionize también me muestra algún error de MySQL:

Error dentro de Ionize (error de MySQL)

¿Alguien sabe cómo resolver esto (o al menos depurarlo ya que no hay errores dentro de los archivos de registro)?

¡Gracias por cualquier sugerencia!

Respuesta1

En los archivos de configuración de Nginx, ubicados en /etc/nginx/nginx.confo /etc/nginx/sites-available/, tiene el protocolo http2 activado en los archivos de configuración para el puerto 80. Simplemente reemplace el listen 80 http2;con listen 80;.

Respuesta2

nginx no descarga archivos, solo envía respuestas HTTP.
Nginx suele ser responsable de configurar el Content-Type:campo en el encabezado HTTP y, de forma predeterminada, nginx utiliza unMÍMICAde application/octet-stream como alternativa cuando no puede determinar el tipo de contenido.
Cuando un navegador recibe un encabezado con este tipo de contenido, solicitará la acción de descarga, ya que application/octet-stream es el tipo MIME para archivos binarios.
Para mí, esto es una indicación de que nginx no está configurado correctamente porque cuando lo fastcgi_passestá correctamente devuelve el html/plainencabezado.
También puedes configurar el tipo de mime directamente

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

o este fragmento establecerá el MIME predeterminado para nginx entext/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

Además, si configura nginx y PHP correctamente y envía los Content-Type:encabezados correctos, los navegadores como Chrome continuarán almacenando en caché los valores anteriores, por lo que seguirán solicitando una descarga.
Esto se puede solucionar abriendo herramientas de desarrollador, accediendo a la configuración de las herramientas de desarrollador y luego haciendo clic enDeshabilitar caché(mientras las herramientas de desarrollo están abiertas)

información relacionada