Конвертировать в shell, а не в shell_exec

Кажется, есть много связанных вопросов, и после просмотра многих из них я все еще не могу найти решение.

Выполнение следующего в оболочке делает свое дело:

/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.

1

Решение

это кажется очень странным, но вы можете попробовать установить конкретный временный?

Попробуйте этот код, где я только что добавил новую переменную окружения, устанавливающую временный каталог в / 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');
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]