相关疑难解决方法(0)

将PHP文件作为下载提供,而不是执行它们

我最近在我的机器上安装了nginx和php 7.0.16,但由于某种原因,nginx下载了php文件,而不是执行它们.我已经花了几天时间在网上实现了所有可用的解决方案,但都是徒劳的.

我的nginx.conf是:

worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.fedora.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    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;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)

conf.d文件夹中没有文件,启用了网站的文件只有下面的默认文件

server {
    listen 80;
    server_name infrastructure;
    root /home/infra/index;
    index index.php index.html index.htm;
    #return 301 https://$server_name$request_uri;

    location / {
        try_files …
Run Code Online (Sandbox Code Playgroud)

nginx php-7 php-7.1

6
推荐指数
2
解决办法
1万
查看次数

nginx正在提供下载而不是php页面

我今天将nginx从1.8.0升级到1.9.7并且不得不改变几行以使网站再次运行.现在它适用于ssl(443)但不适用于http(80).我不得不将fastcgi_params更改为fastcgi.conf.

当我通过cloudflare尝试网站时,它表示与我的服务器没有任何关联.直接连接我得到一个下载的文件.看起来像是一个未在浏览器中解压缩的压缩文件.这是标题.

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:{hidden}
Host:{Hidden}
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

浏览器或服务器上没有错误.检查nginx和php-fpm日志.

还有什么我可以尝试的吗?

附加信息:我使用easyengine为此服务器供电,但我使用的是nginx主线分支.

更新:清除nginx并重新安装后,我现在可以访问其标准http(80)端口上的所有站点.我所拥有的一个ssl站点无法通过其https(443)连接访问.当我这样做时,下载php索引文件.所有其他页面都通过SSL工作,而不是索引页面.它是一个带有漂亮网址的wordpress网站.所有页面实际上都是index.php文件.但这只发生在主页上.80和443 ssl的listen指令位于同一虚拟主机部分.

php nginx ubuntu-14.04

1
推荐指数
1
解决办法
1918
查看次数

标签 统计

nginx ×2

php ×1

php-7 ×1

php-7.1 ×1

ubuntu-14.04 ×1