Не отображаются изображения товара - nginx+php fpm

Вот в логах nginxа:

2014/08/13 13:10:06 [error] 39718#0: *4250 open() "/html/data/dablp/wa-data/public/shop/products/thumb.php/01/00/1/images/1/1.0x320.jpg" failed (20: Not a directory), client: 37.1.131.32, server:
2014/08/13 13:10:06 [error] 39718#0: *4306 open() "/html/data/dablp/wa-data/public/shop/products/thumb.php/02/00/2/images/2/2.0x320.JPG" failed (20: Not a directory), client: 37.1.131.32, server:



Мой конфиг nginx(не уверен, что все правильно):

server {
server_name dablp.ru;

root /html/data/dablp;
index index.php;



location ~ \.php$ {
fastcgi_pass unix:/tmp/php.sock;

fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /html/data/dablp$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /html/data/dablp;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;

}

try_files $uri $uri/ /index.php?$query_string;

# location /index.php {
# include /usr/local/etc/nginx/fastcgi_params;
# fastcgi_pass unix:/tmp/php.sock;
# }

location /api.php {
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_pass unix:/tmp/php.sock;
}

location ^~ /wa-data/protected/ {
#return 403;
#X-Accel-Redirect
internal;
}

location ~* ^/wa-(log|config|cache|system)/ {
return 403;
}

location ~* ^/wa-data/public/contacts/photo/[0-9]+/ {
root /html/data/dablp/;
access_log off;
expires 30d;
error_page 404 = @contacts_thumb;
}

location @contacts_thumb {
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_pass unix:/tmp/php.sock;
fastcgi_param SCRIPT_NAME /wa-data/public/contacts/photo/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/contacts/photo/thumb.php;
}

# photos app
location ~* ^/wa-data/public/photos/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @photos_thumb;
}

location @photos_thumb {
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_pass unix:/tmp/php.sock;
fastcgi_param SCRIPT_NAME /wa-data/public/photos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/photos/thumb.php;
}
# end photos app

# shop app
location ~* ^/wa-data/public/shop/products/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @shop_thumb;
}
location @shop_thumb {
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_pass unix:/tmp/php.sock;
fastcgi_param SCRIPT_NAME /wa-data/public/shop/products/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/shop/products/thumb.php;
}
# end shop app

location ~* ^.+\.(jpg|jpeg|gif|png|js|css)$ {
access_log off;
expires 30d;
}
}

7 ответов

  • 0
    zakaz@dablp.ru 13 августа 2014 03:26 #
    Сама картинка лежит вот по этому url -
    http://dablp.ru/wa-data/public/shop/products/03/00/3/images/3/3.970.JPG
  • 1
    Михаил Ушенин 13 августа 2014 05:06 #
    Надо смотреть, какой путь к файлу картинки получает на входе скрипт в файле wa-apps/shop/lib/config/data/thumb.php в строке

    $request_file = $app_config->getRequestUrl(true, true);

    Возможно, у вас на сервере некорректно формируются переменные $_SERVER['SCRIPT_NAME'] или, если такой переменной нет, то $_SERVER['PHP_SELF']. Иногда бывает, что эти переменные содержат лишние фрагменты, которые не позволяют фреймворку правильно вычислить URI запорса, из которого должны извлекаться параметры для формирования эскиза изображения.
  • 0
    zakaz@dablp.ru 13 августа 2014 05:44 #
    Привел конфиг по Вашему рабочему примеру к этому виду:

    server {
    listen 80;


    server_name dablp.ru;

    root /html/data/dablp;
    index index.php;

    try_files $uri $uri/ /index.php?$query_string;

    location /index.php {

    include /usr/local/etc/nginx/fastcgi_params;
    fastcgi_pass unix:/tmp/php.sock;
    }

    location /api.php {
    include /usr/local/etc/nginx/fastcgi_params;
    fastcgi_pass unix:/tmp/php.sock;
    }

    location ^~ /wa-data/protected/ {
    #return 403;
    #X-Accel-Redirect
    internal;
    }

    location ~* ^/wa-(log|config|cache|system)/ {
    return 403;
    }

    location ~* ^/wa-data/public/contacts/photo/[0-9]+/ {
    root /html/data/dablp/;
    access_log off;
    expires 30d;
    error_page 404 = @contacts_thumb;
    }

    location @contacts_thumb {
    include /usr/local/etc/nginx/fastcgi_params;
    fastcgi_pass unix:/tmp/php.sock;
    fastcgi_param SCRIPT_NAME /wa-data/public/contacts/photo/thumb.php;
    fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/contacts/photo/thumb.php;
    }
    # photos app
    location ~* ^/wa-data/public/photos/[0-9]+/ {
    access_log off;
    expires 30d;
    error_page 404 = @photos_thumb;
    }

    location @photos_thumb {
    include /usr/local/etc/nginx/fastcgi_params;
    fastcgi_pass unix:/tmp/php.sock;
    fastcgi_param SCRIPT_NAME /wa-data/public/photos/thumb.php;
    fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/photos/thumb.php;
    }
    # end photos app

    # shop app
    location ~* ^/wa-data/public/shop/products/[0-9]+/ {
    access_log off;
    expires 30d;
    error_page 404 = @shop_thumb;
    }
    location @shop_thumb {
    include /usr/local/etc/nginx/fastcgi_params;
    fastcgi_pass unix:/tmp/php.sock;
    fastcgi_param SCRIPT_NAME /wa-data/public/shop/products/thumb.php;
    fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/shop/products/thumb.php;
    }
    # end shop app

    location ~* ^.+\.(jpg|jpeg|gif|png|js|css)$ {
    access_log off;
    expires 30d;
    }
    }

    Что делать?
  • 0
    zakaz@dablp.ru 13 августа 2014 05:45 #
    Сейчас в браузере пустая белая страничка...
    • 0
      Михаил Ушенин Михаил Ушенин 13 августа 2014 05:58 #
      Включите отображение ошибок PHP и смотрите логи веб-сервера, чтобы узнать, что не так.
  • 2
    Николай 1 июля 2015 08:31 #

    Проблема в ctrl+c ctrl+v

    -location ~* ^/wa-data/public/contacts/photo/[0-9]+/
    +location ~* ^/wa-data/public/contacts/photos/[0-9]+/

    • +1
      iSwitch iSwitch 19 октября 2015 12:23 #

      Спасибо добрый человек. Пол дня на это убил.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите