Кажется, есть много связанных вопросов, и после просмотра многих из них я все еще не могу найти решение.
Выполнение следующего в оболочке делает свое дело:
/usr/local/bin/convert -trim -density 300 /Users/fullpath/file.pdf /Users/fullpath/file.png
пока делаю это в php файле следующим образом:
<?php
putenv("PATH=/usr/local/bin:/usr/bin:/bin");
echo shell_exec('/usr/local/bin/convert -trim -density 300 /Users/fullpath/file.pdf /Users/fullpath/file.png 2>&1');
?>
не делает. Отображаемое сообщение об ошибке:
преобразовать: UnableToCreateTeditionalFile
`/Users/fullpath/file.pdf ‘: в доступе отказано
Мои характеристики:
Mac: снежный барс
Запуск Apache через localhost.
Очевидно, что это проблема с разрешениями, но где? Сам файл и связанные папки находятся на 777.
это кажется очень странным, но вы можете попробовать установить конкретный временный?
Попробуйте этот код, где я только что добавил новую переменную окружения, устанавливающую временный каталог в / tmp (вы можете попробовать другие места):
<?php
putenv("PATH=/usr/local/bin:/usr/bin:/bin");
putenv("MAGICK_TEMPDIR=/tmp");
echo shell_exec('/usr/local/bin/convert -trim -density 300 /Users/fullpath/file.pdf /Users/fullpath/file.png 2>&1');
?>
Других решений пока нет …