Почему сonvert pdf_file jpg_file не работает в shell_exec?

Ссылка скопирована
1 ответ

сonvert pdf_file jpg_file запущенный в консоли из под рута работает правильно.

Эта-же команда, запущенная из кода PHP под "admin" не работает, в выводе
[ghostscript library 9.25] -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r300x300' '-sOutputFile=/tmp/magick-24668b6kzP9ocVBbx%d' '-f/tmp/magick-24668Y0Fes70xrPwt' '-f/tmp/magick-24668sKxaKu86kfSp'

Эта-же команда, запущенныая в консоли из под "admin" выдает: sites: Postscript delegate failed `[ghostscript library 9.25] -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r300x300' '-sOutputFile=/tmp/magick-24668b6kzP9ocVBbx%d' '-f/tmp/magick-24668Y0Fes70xrPwt' '-f/tmp/magick-24668sKxaKu86kfSp'': ./base/gsicc_manage.c:1244: gsicc_open_search(): Could not find default_gray.icc
| ./base/gsicc_manage.c:2261: gsicc_init_iccmanager(): cannot find default icc profile
./base/gsicc_manage.c:1244: gsicc_open_search(): Could not find default_rgb.icc
| ./base/gsicc_manage.c:2025: gsicc_set_device_profile(): cannot find device profile
**** Unable to open the initial device, quitting.
@ error/ghostscript-private.h/InvokeGhostscriptDelegate/171.
sites: no images defined `/home/admin/sites/*.info/*/*/p-dipl_ulmPc4COs.jpg' @ error/convert.c/ConvertImageCommand/3235.

Дополнительно:

Ответы:

Недоступны цветовые профили.
В Дебиане они лежат /usr/share/color/icc/ghostscript/ - в Центосе где-нибудь там же.
Проверяйте доступ.
Можно прямо в команде указать

-profile /path/to/gray.icc -profile /path/to/sRGB.icc -colorspace sRGB

-profile /path/to/gray.icc -profile /path/to/sRGB.icc -colorspace sRGB

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

Проблема, с которой вы сталкиваетесь, связана с тем, что функция shell_exec() в PHP может быть ограничена настройками вашего сервера или окружения.

Один из возможных способов решения этой проблемы - проверить настройки безопасности вашего сервера. Некоторые хостинг-провайдеры могут ограничивать выполнение определенных команд через shell_exec() из соображений безопасности.

Если у вас есть возможность изменить настройки сервера, попробуйте разрешить выполнение команд, которые вы пытаетесь запустить через shell_exec(). Вы можете проверить это, выполнив другую команду, например, "ls" или "pwd", чтобы убедиться, что shell_exec() работает на вашем сервере.

Также стоит убедиться, что у вас установлены все необходимые зависимости для выполнения команды "convert pdf_file jpg_file". Возможно, у вас отсутствует установленный ImageMagick, который необходим для конвертации файлов из PDF в JPG. Установите ImageMagick на вашем сервере и попробуйте выполнить команду снова.

Наконец, убедитесь, что у вас правильно сформирована команда для конвертации файла. Проверьте пути к файлам, используемые в команде, и удостоверьтесь, что они существуют и доступны для чтения.

Привожу пример кода на PHP, который может помочь вам выполнить конвертацию файла из PDF в JPG с помощью ImageMagick:

$pdf_file = "path/to/pdf_file.pdf";
$jpg_file = "path/to/jpg_file.jpg";
 
$command = "convert $pdf_file $jpg_file";
 
$output = shell_exec($command);
 
if($output === null) {
    echo "Файл успешно сконвертирован в JPG";
} else {
    echo "Произошла ошибка при конвертации файла";
}

$pdf_file = "path/to/pdf_file.pdf"; $jpg_file = "path/to/jpg_file.jpg"; $command = "convert $pdf_file $jpg_file"; $output = shell_exec($command); if($output === null) { echo "Файл успешно сконвертирован в JPG"; } else { echo "Произошла ошибка при конвертации файла"; }

Надеюсь, эти советы помогут вам решить проблему с выполнением команды "convert pdf_file jpg_file" через shell_exec() в PHP. Если у вас остались вопросы, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно