2009-07-15 10 views
2

question은 가깝지만 트릭을 수행하지 않습니다. pdf를 jpg로 변환하려고합니다 (미리보기 용).이상한 문제 - PHP/ImageMagick/Ghostscript

convert -quality 100 -density 200x200 /path/file.pdf /path/file.jpg 

내가 프로 1.7.2가, ImageMagick이가, 고스트 스크립트가 모두 제대로 MAMP 설치되어 작동이 : 여기가 실행하고있는 명령입니다. 이 명령은 쉘에서 완벽하게 작동하지만 PHP 스크립트 내에서 실행될 때 실패합니다. 또 하나의 트위스트는 이미지와 이미지 간의 변환이며, 모든 것이 쉘과 스크립트에서 완벽하게 작동합니다. gs 바이너리가 convert 바이너리와 같은 디렉토리에 있지만 아파치/php 환경 내에서 ghostscript (gs)와 관련된 경로 문제가 있다고 생각하게됩니다. 또한, 나는 mamp apache envars per tweak을했다. (brybot.ca의 훌륭한 튜토리얼 - www.brybot.ca/archives/getting-imagemagick-and-more-to-work-with-mamp-on-os-x/) ImageMagick 잘 작동하고 "/ opt/local/bin"내 아파치 경로 변수에 있습니다.

셸을 사용하면 pdf에서 이미지로 변환하는 데 약간의 시간이 걸리고 imagemagick/ghostscript 변환이 완료되고 imagemagick 변환 프로세스가 중단되기 전에 php 스크립트가 종료/완료되고 있다는 잔소리 한 생각이 들었습니다. ? exec, system, shell_exec를 사용해 보았습니다.

아무 것도 출력되지 않고 아파치 나 PHP 로그에 아무것도 나타나지 않습니다.

UPDATE : 지금은

convert: unable to create temporary file `/path/file.pdf': Permission denied @ pdf.c/ReadPDFImage/358. convert: missing an image filename `/path/file.jpg' @ convert.c/ConvertImageCommand/2766. 

누구나 어떤 아이디어가 MAMP 다시 시작한 후 아파치 로그에 다음과 같은 오류를 받고 있어요? 나는 이것에 내 머리카락을 당기고있어 ...

고마워요!

+0

이 권한에 대해인지 확인 할 수 있고, 새로운 디렉토리를 가리 키도록 ENV-var에 TMPDIR을 추가하고 모든 권한과 로컬 계정 IUSR을 추가했습니다. 모든 것이 잘 돌아 간다. – Teson

답변

2

아파치는 일반적으로 서버에 대한 사용 권한이 제한되어 있습니다. 아파치는 쓰기 권한이있는/tmp에 파일을 넣으십시오. 아파치는 다른 사람들이 읽을 수있는 경우가 아니라면 다른 사용자가 만든 파일을 읽는 데 어려움을 겪을 수도 있습니다.

+0

생각해 줘서 고마워, 나는 같은 줄을 따라 생각하고 있었다. 파일은 이미지와 이미지의 변환이 pdfs (고스트 스크립트 관련)와 관련된 변환이 아니라는 사실에 의해 입증됩니다. –

0

나는 exec를 사용하여 쉘 명령어를 사용하는 것이 가장 좋지 않은 기사를 읽었으며, php에서 inbuilt Imagick을 사용하는 것이 더 좋다. 당신이 Link

덕분에 읽어 이상 드림 데이