Hoy he subido mi sitio al servidor y recibo errores como los siguientes:
No se puede generar la imagen derivada ubicada en public: //styles/sponsor_image/public/TerraThermaSponsorLogo.png.
Los estilos de imagen no pueden generar imágenes. Intenté establecer permisos en estilos / * carpetas con chmod -R 775 styles/
, e incluso intenté chmod -R 777 styles/
. El propietario de la carpeta está bien. No entiendo qué puede estar mal.
El directorio asociado con public: // es sites / default / files, y está bien.
www-data
, pero aún recibo el error. ¿Qué más hago? ImageMagick está configurado correctamente, lo estoy ejecutando en un servidor que tiene muchas instalaciones de Drupal.También debe asegurarse de tener una biblioteca gráfica (como php-gd) instalada en su servidor: consulte / admin / config / media / image-toolkit (D7).
fuente
El error proviene del módulo de imagen (núcleo) y la lógica se ve así:
Por lo tanto, el error ocurre cuando Drupal tiene problemas para generar una derivada de la imagen aplicando todos los efectos de la imagen y guardando una versión en caché de la imagen resultante.
La forma más fácil de reproducir el problema (para fines de diagnóstico) es mediante borrado.
Invoque image_style_create_derivative () directamente desde drush:
Reemplace
picture-123.png
con la imagen existente del registro:O use cualquier otro existente, por ejemplo
drush sqlq "SELECT * FROM file_managed"
.Si no tiene acceso a shell, use el módulo Devel, vaya
/devel/php
y pegue el código PHP allí.Nota: Si la
files
carpeta es propiedad de un usuario de Apache, debe iniciar sesión como este usuario con fines de prueba. De lo contrario, prefija su comando drush consudo -u www-data
.Existen las siguientes posibilidades.
drush eval "print_r(gd_info());"
.Los problemas de permisos de depuración se pueden lograr fácilmente mediante
strace
. Instálelo y simplemente prefija cualquier comando con el que esté probandostrace -f
(no tiene que ser root).Por ejemplo:
Si ha iniciado sesión con una cuenta diferente que posee
files
, no olvide prefijar su comando drushsudo -u www-data
para ejecutar todo el comando como usuario de Apache.fuente
Esto también puede deberse a que PHP se compila sin libjpeg (si las imágenes que no se generarán tienen fuentes jpeg). Verifique la salida de
gd_info()
para ver si hay soporte PHP.fuente