Мне нужно выполнить ImageMagick's convert
через shell_exec
в php-файле, работающем с apache как localhost на mac, работающем на снежном барсе. Я пробовал всевозможные советы, трюки, изменения и разрешения, полученные из множества вопросов и решений отсюда. Но ничего похожего на трюк. Файл PHP ниже освещает проблему:Как установить разрешения в php для команды shell_exec
<?php
echo shell_exec('whoami'); //daemon. I chown-ed convert by daemon
apache_setenv('PATH', '/usr/local/bin:/usr/bin:/bin'); // this works: checked with getenv("PATH");
echo shell_exec('cp /Users/fullpath/file.pdf /Users/fullpath/file.pdf 2>&1'); // this works, so shell_exec works
echo shell_exec('/usr/local/bin/convert /Users/fullpath/file.pdf /Users/fullpath/file.png 2>&1'); // this fails, convert: UnableToCreateTemporaryFile and then convert: NoImagesDefined
?>
Я предполагаю, что это проблема разрешения: а где, на какой файл?
EDIT: Сообщение полная ошибка:
convert: UnableToCreateTemporaryFile `/Users/fullpath/file.pdf': Permission denied @ error/pdf.c/ReadPDFImage/390.
convert: NoImagesDefined `/Users/fullpath/file.png' @ error/convert.c/ConvertImageCommand/3021.
Спасибо за советы. Я попробовал 'which gs' и получил путь'/opt/local/bin', который включен в строку 'apache_setenv'. Я перезапустил apache. Все те же ошибки происходят. Полный журнал ошибок, которые я отредактирую в вопросе. – Geoff