bezdoom
@bezdoom
Senior Backend Dev @ AVITO.ru / PHP, GoLang

Проблема с выполнением php файлов и единой точки доступа (nginx, php-fpm)?

Всем привет.

Есть такой конфиг, который занимается реврайтом запросов на index.php, в котором уже идет разборка роутинга и подгрузка соответствующего контроллера. С этой задачей он отлично справляется.

Честно спер с сайта симфони2, но тут есть один минус, который я не в силах победить. Если положить любой php файл, отличный от index.php - то он не выполняется, а просто отдается на скачку.

Проблема возникла, когда попытался воспользоваться xhprof.

server {
    listen 80;
    server_name point.local;
    root /home/kulikov/www/point.local/httpdocs/;

    location / {
        try_files $uri @rewriteapp;
    }

    location @rewriteapp {
        rewrite ^(.*)$ /index.php/$1 last;
    }

    location ~ ^/(index)\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|avi|djvu|mp3|mp4|ogv|3gp)$ {
        root /home/kulikov/www/point.local/httpdocs;
    }

    error_log /home/kulikov/www/point.local/logs/nginx_error.log;
    access_log /home/kulikov/www/point.local/logs/nginx_access.log;
}


Хелп.
  • Вопрос задан
  • 2852 просмотра
Решения вопроса 1
egor_nullptr
@egor_nullptr
server {
    listen 80;
    server_name point.local;
    root /home/kulikov/www/point.local/httpdocs/;

    try_files $uri /index.php?$args;
    
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|avi|djvu|mp3|mp4|ogv|3gp)$ {
        root /home/kulikov/www/point.local/httpdocs;
    }

    error_log /home/kulikov/www/point.local/logs/nginx_error.log;
    access_log /home/kulikov/www/point.local/logs/nginx_access.log;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@boodda
как вариант убрать отсюда
location ~ ^/(index)\.php(/|$) {
(index) или заменить на
location ~ \.php$ {
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы