2012-09-05 5 views
3

는 내가 명령 줄에서이 코드를 사용하면 투명PHP는 완벽하게 작동

에 RGB 색상을 변환하려고 명령. 내가 PHP와 함께 사용하면

convert -transparent 'RGB(249,249,255)' /home/me/web/my.png /home/me/web/mynew.png 

는하지만 :

변환 : '이미지'/home/me/web/mynew.png을 열 수 없습니다

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

$output = shell_exec("convert -transparent 'RGB(249,249,255)' /home/me/web/my.png /home/me/web/mynew.png"); 

?> 

내가 오류를 얻을 : @ 오류/blob.c/OpenBlob/2498.

누구에게 아이디어가 있습니까?

+0

오류 메시지의 경로는 파일의 올바른 경로입니까? – John3136

+0

이제 경로가 수정되었지만 여전히 동일한 오류가 발생합니다. – mcknight

답변

3

내게는 액세스 권한 문제 인 것 같습니다. 웹 서버가 홈 디렉토리에 파일을 작성하려고합니다.

일반적으로 자신의 홈 디렉토리가 사람이 아닌 사람이 파일을 쓸 수 없다는 식으로 보호되어 있습니다. 따라서 터미널을 사용할 때 웹 서버는 새 파일을 만들 수 없습니다.

새 이미지가 포함될 폴더에 대한 액세스 권한을 확인하고 웹 서버를 실행하는 사용자가 해당 폴더에 쓸 수있게하십시오.

4

(shell_exec 때문에) homedir에 대한 상대 경로를 사용해야합니다. 그렇지 않으면 절대 경로를 사용해야합니다.

하지만 imagemagick for php을 사용하지 않으시겠습니까?

+0

경로는 수정되었지만 여전히 같은 오류입니다. 거기에 convert -transparent 명령을 찾을 수 없기 때문에 PHP 용 imagemagick을 사용하지 않습니다 ... – mcknight