Не отображаются изображения товара - 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;
}
}
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 ответов
http://dablp.ru/wa-data/public/shop/products/03/00/3/images/3/3.970.JPG
$request_file = $app_config->getRequestUrl(true, true);
Возможно, у вас на сервере некорректно формируются переменные $_SERVER['SCRIPT_NAME'] или, если такой переменной нет, то $_SERVER['PHP_SELF']. Иногда бывает, что эти переменные содержат лишние фрагменты, которые не позволяют фреймворку правильно вычислить URI запорса, из которого должны извлекаться параметры для формирования эскиза изображения.
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;
}
}
Что делать?
Проблема в ctrl+c ctrl+v
-location ~* ^/wa-data/public/contacts/photo/[0-9]+/
+location ~* ^/wa-data/public/contacts/photos/[0-9]+/
Спасибо добрый человек. Пол дня на это убил.