O navegador baixa o arquivo em vez de abrir arquivos php

O navegador baixa o arquivo em vez de abrir arquivos php

Então, estou postando uma resposta, porque depois da reinstalação limpa duas vezes, configurei as coisas de maneira diferente (no meu ponto de vista). Como eu disse acima, enfrento um dilema, já que nenhuma configuração que tenho é igual a qualquer outra resposta que encontrei. Por exemplo :

Minha pasta /etc/nginx é basicamente constituída da seguinte forma:

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

Não há /sites-available ou /sites-enabled como visto em todos os lugares, o fastcgi-php.conf mencionado é na verdade um fastcgi_params na pasta raiz, meu padrão, portanto, não está na pasta site-available.

Aqui estão os dois arquivos de configuração que tenho agora (domínio oculto em my_domain.com): Primeiro: o nginx.conf (quase intocado)

    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;

}

Em segundo lugar, o /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;
    }
    

}

Eu também adicionei uma linha

text/php            php;

ao mime.types também lembro de deletar o cache do meu_domínio nos navegadores que utilizo (Firefox, Opera e Chrome).

Mesmo assim, o arquivo foi baixado.

O que eu fiz errado ?

Edit: como gostaria de fazer um blog.my_domain.com, shop.my_domain.com e forum._mydomain.com, criei a pasta /site-available e /site-enabled, pretendo criar um blog/forum/shop .my_domain.com.conf em cada pasta de mesmo nome localizada em /sites-available, mas estou aguardando uma configuração funcional para torná-los visíveis no nginx.conf (com uma linha de inclusão, certo?).

Então, eu realmente não entendo como essas duas pastas funcionam. Os subdomínios têm seu registro CNAME definido como meu_domínio.com. Também li sobre como criar um link simbólico para esses subsites, mas não sei realmente de onde para onde? obrigado novamente

O log de erros informa que a conexão com /var/run/php/ foi negada. o usuário padrão é www-data www-data, mas meu usuário nginx padrão é nginx (se eu alterá-lo, ele nem inicia.) Devo fazer um

chown nginx:nginx /var/run/php/

?

Responder1

Para configurar o php você precisa ter uma versão do php-fpm instalada em seu sistema. E adicione este trecho ao seu conf nginx no serverbloco.

Você deve mudar php5-fpmpara a versão instalada em seu 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;
  }

Responder2

Você não tem um interpretador de PHP, o NGINX temum artigoem seu wiki sobre FPM.

informação relacionada