PHP скрипт на AWS EC2 NGINX не работает, но загружается - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь настроить свой сайт в AWS ec2 с помощью nginx. Вот мой 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?

1 Ответ

0 голосов
/ 17 ноября 2018

Ваши операторы rewrite...break должны быть rewrite...last, поскольку файл PHP должен обрабатываться в другом месте. Подробнее см. в этом документе .

Например:

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

Тем не менее, вышеуказанные функции обычно реализуются как:

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

Другие проблемы включают в себя:

  • отсутствует ; в блоке location ~ \.php$ после оператора try_files.

  • оператор root в блоке location ~ \.php$ следует удалить, так как он не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...