El navegador descarga el archivo en lugar de abrir archivos php

El navegador descarga el archivo en lugar de abrir archivos php

Entonces, estoy publicando una respuesta, porque después de la reinstalación limpia dos veces, configuré las cosas de manera diferente (desde mi punto de vista). Como dije anteriormente, me enfrento a un dilema, ya que ninguna de las configuraciones que tengo es la misma que otras respuestas que pude encontrar. Por ejemplo :

Mi carpeta /etc/nginx está básicamente constituida de la siguiente manera:

|- /etc/nginx/
|  |- conf.d/
|  |  |- default.conf
|  |
|  |- fastcgi_params
|  |- mime.types
|  |- modules/ -> /usr/lib/nginx/modules
|  |- nginx.conf
|  |- scgi_params
|  |- uwsgi_params

No hay /sites-available o /sites-enabled como se ve en todas partes, el fastcgi-php.conf mencionado es en realidad un fastcgi_params en la carpeta raíz, por lo que mi valor predeterminado no está en la carpeta de sitio disponible.

Aquí están los dos archivos de configuración que tengo ahora (dominio oculto en my_domain.com): Primero: nginx.conf (casi intacto)

    user  nginx;

worker_processes  auto;

error_log  /var/log/nginx/error.log notice;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;

}

http {
    include       /etc/nginx/mime.types;
    include       /etc/nginx/sites-available/*.conf;
    default_type  application/octet-stream;


    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';



    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;

}

En segundo lugar, el /etc/nginx/conf.d/default.conf

    server {
    listen       80;
    server_name  my_domain.com www.my_domain.com;

    location / {
        root /var/www/www.my_domain.com;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/www.my_domain.com;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        #if (!-f $document_root$fastcgi_script_name) {
        #    return 404;
        #}
        root           /var/www/www.my_domain.com;
    #    fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
    

}

También agregué una línea

text/php            php;

a los mime.types también recuerdo borrar el caché de my_domain en los navegadores que uso (Firefox, Opera y Chrome).

Pero aún así, el archivo se descarga.

Qué hice mal ?

Editar: como me gustaría crear un blog.mi_dominio.com, tienda.mi_dominio.com y foro._midominio.com, creé las carpetas /site-available y /site-enabled, tengo la intención de crear un blog/foro/tienda .my_domain.com.conf en cada carpeta del mismo nombre ubicada en /sites-available, pero estoy esperando una configuración que funcione para hacerlos visibles en nginx.conf (con una línea de inclusión, ¿verdad?).

Realmente no entiendo cómo funcionan estas dos carpetas. Los subdominios tienen su registro CNAME establecido en mi_dominio.com. También leí sobre cómo crear un enlace simbólico para estos subsitios web, pero realmente no sé de dónde a dónde. gracias de nuevo

El registro de errores me dice que la conexión a /var/run/php/ está denegada. el usuario predeterminado es www-data www-data, pero mi usuario nginx predeterminado es nginx (si lo cambio, ni siquiera se inicia). ¿Debo hacer una

chown nginx:nginx /var/run/php/

?

Respuesta1

Para configurar php debes tener una versión de php-fpm instalada en tu sistema. Y agregue este fragmento a su configuración de nginx en el serverbloque.

Tienes que cambiar php5-fpma la versión que tienes instalada en tu sistema.

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

Respuesta2

Te falta un intérprete PHP, NGINX tieneun artículoen su wiki sobre FPM.

información relacionada