• Inicio

  • This is the forum index page
Consultas sobre uso del prestashop

Moderador: Antonio Torres

 #12020  por info309309
 11 Jul 2018 19:47
Hola, hemos cambiado hoy nuestra tienda www.glamtown.es de WordPress a Prestashop y se nos están grabando en el log errores de este tipo cuando un cliente intenta pagar con Paypal, ¿tiene que ver con la configuración de alguna librería o directorio? ¿nos podéis ayudar? Gracias.


Ejemplo:

[Wed Jul 11 13:36:11.436356 2018] [proxy_fcgi:error] [pid 17825:tid 139720260552448] [client 188.84.220.116:39194] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught exception 'ImagickException' with message 'WriteBlob Failed `/var/www/vhosts/glamtown.es/httpdocs/prestashop/cache/tcpdf/mska_8be41c7c8adfb8bfd3e7cf8fbc8cf5bb' @ error/png.c/MagickPNGErrorHandler/1751' in /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php:8618\nStack trace:\n#0 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(8618): Imagick->writeimage('/var/www/vhosts...')\n#1 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(8078): TCPDF->ImagePngAlpha('/var/www/vhosts...', 11.121833333333, -26.852305555556, 400, 134, 93.878238888889, 31.449210027777, 'PNG', '', 'B', false, 300, '', '8be41c7c8adfb8b...')\n#2 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(23818): TCPDF->Image('/var/www/vhosts...', 11.121833333333, -26.852305555556, 105.30679933665, 35.277777777778, '', '', 'B', false, 300, '', false, false, 0, false, false, true)\n#3 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/t...\n', referer: https://www.paypal.com/webapps/hermes?f ... le.x=es_ES

Fatal error: Uncaught exception 'ImagickException' with message 'WriteBlob Failed `/var/www/vhosts/glamtown.es/httpdocs/prestashop/cache/tcpdf/mska_b96f801212093054ba57b1b4b7b67e84' @ error/png.c/MagickPNGErrorHandler/1751' in /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php:8618 Stack trace: #0 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(8618): Imagick->writeimage('/var/www/vhosts...') #1 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(8078): TCPDF->ImagePngAlpha('/var/www/vhosts...', 11.121833333333, -26.852305555556, 400, 134, 93.878238888889, 31.449210027777, 'PNG', '', 'B', false, 300, '', 'b96f80121209305...') #2 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(23818): TCPDF->Image('/var/www/vhosts...', 11.121833333333, -26.852305555556, 105.30679933665, 35.277777777778, '', '', 'B', false, 300, '', false, false, 0, false, false, true) #3 /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php(23214): TCPDF->openH in /var/www/vhosts/glamtown.es/httpdocs/prestashop/tools/tcpdf/tcpdf.php on line 8618


La función que nos está dando el error es esta: $img->writeImage($tempfile_alpha);

protected function ImagePngAlpha($file, $x, $y, $wpx, $hpx, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $filehash='') {
if (empty($filehash)) {
$filehash = md5($this->file_id.$file);
}
// create temp image file (without alpha channel)
$tempfile_plain = K_PATH_CACHE.'mskp_'.$filehash;
// create temp alpha file
$tempfile_alpha = K_PATH_CACHE.'mska_'.$filehash;
if (extension_loaded('imagick')) { // ImageMagick extension
// ImageMagick library
$img = new Imagick();
$img->readImage($file);
// clone image object
$imga = $this->objclone($img);
// extract alpha channel
$img->separateImageChannel(8); // 8 = (imagick::CHANNEL_ALPHA | imagick::CHANNEL_OPACITY | imagick::CHANNEL_MATTE);
$img->negateImage(true);
$img->setImageFormat('png');
$img->writeImage($tempfile_alpha);
// remove alpha channel
$imga->separateImageChannel(39); // 39 = (imagick::CHANNEL_ALL & ~(imagick::CHANNEL_ALPHA | imagick::CHANNEL_OPACITY | imagick::CHANNEL_MATTE));
$imga->setImageFormat('png');
$imga->writeImage($tempfile_plain);
} elseif (function_exists('imagecreatefrompng')) { // GD extension
// generate images
$img = imagecreatefrompng($file);
$imgalpha = imagecreate($wpx, $hpx);
// generate gray scale palette (0 -> 255)
for ($c = 0; $c < 256; ++$c) {
ImageColorAllocate($imgalpha, $c, $c, $c);
}
// extract alpha channel
for ($xpx = 0; $xpx < $wpx; ++$xpx) {
for ($ypx = 0; $ypx < $hpx; ++$ypx) {
$color = imagecolorat($img, $xpx, $ypx);
$alpha = $this->getGDgamma($color); // correct gamma
imagesetpixel($imgalpha, $xpx, $ypx, $alpha);
}
}
imagepng($imgalpha, $tempfile_alpha);
imagedestroy($imgalpha);
// extract image without alpha channel
$imgplain = imagecreatetruecolor($wpx, $hpx);
imagecopy($imgplain, $img, 0, 0, 0, 0, $wpx, $hpx);
imagepng($imgplain, $tempfile_plain);
imagedestroy($imgplain);
} else {
$this->Error('TCPDF requires the Imagick or GD extension to handle PNG images with alpha channel.');
}
// embed mask image
$imgmask = $this->Image($tempfile_alpha, $x, $y, $w, $h, 'PNG', '', '', $resize, $dpi, '', true, false);
// embed image, masked with previously embedded mask
$this->Image($tempfile_plain, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, false, $imgmask);
// remove temp files
unlink($tempfile_alpha);
unlink($tempfile_plain);
}


Muchas gracias!
 #12032  por info309309
 12 Jul 2018 12:24
Es un error que no sale solo con los pagos de Paypal, si no que aparece en diferentes funciones, mientras que en otro VPS que usábamos para desarrollar la web no nos ha aparecido. Supongo que es por la configuración de PHP o de los directorios.
 #12049  por Juan82
 13 Jul 2018 10:55
Estimado usuario:

Al parecer el error que arroja es que no puede escribir un archivo en una ruta indicada. Esto normalmente se debe a que alguna carpeta no tiene los permisos adecuados.

Nos hemos puesto en contacto con los compañeros de soporte y van a restaurar los permisos por defecto que tienen que tener los archivos del proyecto.

Al tener un ticket abierto con la incidencia los compañeros de soporte se pondrán en contacto mediante el mismo cuando esten restaurados los permisos.

Un Saludo.