【问题标题】:PHP script on AWS EC2 NGINX not working but downloadAWS EC2 NGINX 上的 PHP 脚本不工作但下载
【发布时间】:2018-11-17 17:41:10
【问题描述】:

我正在尝试使用 nginx 在 AWS ec2 中设置我的站点。这是我的nginx.conf

include /etc/nginx/conf.d/*.conf;

index index.php index.html index.htm;

autoindex off;

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  127.0.0.1;
    root         /usr/share/nginx/myproject;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    #location / {
    #}

    location = /index.php {
      rewrite ^(.*)$ /app/index.php break;
    }

    location / {
      if (!-e $request_filename){
        rewrite ^(.*)$ /app/index.php break;
      }
    }

    location ~ \.(secret|salt|engine|inc|po|sh|bat|cmd|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|inc)$ {
      deny all;
    }

    # redirect server error pages to the static page /40x.html
    #
    error_page 404 /404.html;
        location = /40x.html {
    }

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

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        try_files      $uri =404
        root           /usr/share/nginx/myproject;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}

当我访问公共 DNS 时,我得到的是下载而不是运行 PHP 脚本。我的 nginx 配置有问题吗?

【问题讨论】:

    标签: php nginx amazon-ec2


    【解决方案1】:

    您的rewrite...break 语句应该是rewrite...last,因为PHP 文件需要在不同的位置进行处理。详情请见this document

    例如:

    location / {
        if (!-e $request_filename){
            rewrite ^ /app/index.php last;
        }
    }
    

    但是,上述功能通常实现为:

    location / {
        try_files $uri $uri/ /app/index.php;
    }
    

    其他问题包括:

    • location ~ \.php$ 块中 try_files 语句后面的 ; 缺失。

    • 应该删除location ~ \.php$ 块中的root 语句,因为它是不必要的。

    【讨论】:

      猜你喜欢
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2015-08-10
      • 2013-10-10
      • 1970-01-01
      • 2020-11-29
      相关资源
      最近更新 更多