NGINX Загрузка файлов PHP, но файлы оправдывают, когда я использую https - PullRequest
0 голосов
/ 26 января 2019

php файлы на моем сервере работают хорошо, когда я использую https: //, но он начинает загружать .php файлы как код, когда я использую http: // в браузере.Я установил позволяет шифровать SSL на сервере.

вот мой файл /etc/nginx/conf.d/default.conf.

server {
    server_name  localhost;


    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

 location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi.conf;
 }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/localhost/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/localhost/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot




}
server {
    if ($host = localhost) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = localhost) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


	
    listen       80;
    server_name  localhost;
    return 404; # managed by Certbot




}
server {
    if ($host = localhost) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


	if ($host = localhost) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    listen 80;
    server_name  localhost;
    return 404; # managed by Certbot


}

Я изменил домен на localhost по соображениям безопасности.может кто-нибудь сказать мне, что не так.Ни одно решение не сработало.(

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Решение не сработало, поэтому я принудительно перенаправил весь трафик http: // на https://

0 голосов
/ 26 января 2019

HTTP - это порт 80, а HTTPS - это порт 443. Вам нужно иметь

listen 80;

в блоке сервера, который сообщает nginx, чтобы передать запрос в PHP.Приведенная ниже конфигурация находится в блоке вашего сервера с listen 443, поэтому HTTPS выполняет файл php вместо его загрузки

 location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi.conf;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...