Решено: Drupal NGINX не создаются thumbnail (миниатюры) изображений
В случае отказа от apache и использования nginx в связке с php5-fpm может появиться проблема. Все работает, а изображения не создаются.
Проблемы могут быть в трех случаях.
1) Не верные права на директорию.
Решение
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
по умолчанию права на папку с миниатюрами и другими стилями должны быть 755, так же проверьте права, на запись сервером. Владелец должен быть или специальный пользователь или сервер.
Сменить права можно с помощью команды chown, например сменим права на всю директорию где находится сайт
chown -R www-data:www-data my_site_dir
где my_site_dir нужная нам папка
2) Отсутствие расширения php для работы с изображениями. Проверить можно с помощью тестового файла вида.
<?php
var_dump(gd_info());
?>
называем его например, test-gd.php, закидываем в корень сайта и открываем.
При правильной настройке увидим что-то подобное
array(12) {
["GD Version"]=>
string(27) "bundled (2.0.34 compatible)"
["FreeType Support"]=>
bool(true)
["FreeType Linkage"]=>
string(13) "with freetype"
["T1Lib Support"]=>
bool(true)
["GIF Read Support"]=>
bool(true)
["GIF Create Support"]=>
bool(true)
["JPEG Support"]=>
bool(true)
["PNG Support"]=>
bool(true)
["WBMP Support"]=>
bool(true)
["XPM Support"]=>
bool(true)
["XBM Support"]=>
bool(true)
["JIS-mapped Japanese Font Support"]=>
bool(false)
}
В первых строках указана версия библиотеки, если она установлена.
3) Самая сложно вычисляемая причина - неправильный конфиг nginx
ImageCache в Drupal 7 принимает информацию об отсутсвующих файлах через 404 ошибку с сервера, и если файла нет, то создает новое изображение с заданными параметрами.
Тот конфиг что гуляет по русскоязычной версии сети не учитывает этот момент. Необходимо дописать следующие правила
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
после обновить страницу с миниатюрами, они должны появиться.