2014-11-30 2 views
0

Мне нужно выполнить 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. 

ответ

0

Вы выполняете convert успешно, но затем сам convert возвращается ошибка convert: UnableToCreateTemporaryFile and then convert: NoImagesDefined.

Я думаю, что это ответ на основной вопрос можно найти в https://superuser.com/questions/819277/cant-convert-pdf-into-image-because-of-no-images-defined-error

+0

Спасибо за советы. Я попробовал 'which gs' и получил путь'/opt/local/bin', который включен в строку 'apache_setenv'. Я перезапустил apache. Все те же ошибки происходят. Полный журнал ошибок, которые я отредактирую в вопросе. – Geoff

Смежные вопросы