2013-03-18 1 views
2

벤더 파트너로부터 데이터 가져 오기를 수행하는 PHP 스크립트가 있습니다. 필요한 작업 중 하나는 shell_exec()를 통해 다른 스크립트를 호출 한 다음 이미지 파일을 처리하고 Amazon S3 버킷에 업로드하는 것입니다. 지금은 터미널에서이 스크립트의 출력을보고 있어요, 잠시 후 나는의 라인을 따라 일련의 메시지를 참조하십시오PHP shell_exec()가 작동하지 않는 경우가 있음

이상한 것은이 같은 스크립트가 호출되는 것을

Warning: shell_exec(): Unable to execute 'php -f /path/to/second/script.php /path/to/image/to/process.jpg' in /path/to/this/script.php on line 453

복수를 시간이 스크립트에서 시작하고 함께 작동하고 중지합니다. 그것은 다른 스크립트에서도 잘 호출되어 잘 작동합니다. 내가 실행할 수없고 붙여 넣을 수없는 명령을 복사하면 항상 작동합니다. 분명히 PHP는 때때로 그것을 실행할 수 있습니다.

각 줄마다 메모리 사용량을 표시했습니다. 올바르게 작동하는 동안 148MB, 오류가 발생하는 경우 77MB로 보았습니다. (이 스크립트는 주 스크립트에 있고 보조 스크립트는 실행할 수 없습니다). 오류가 발생하기 시작하면 메모리 사용량이 더 낮아지고 낮아지는 것 같습니다. 처음으로 알아 차린 것은 약 88MB 였고 85MB, 81MB, 77MB로 떨어졌습니다.

가끔씩 스크립트가 작동하지 않는 원인이 있는지 잘 모르겠습니다. 내가 마지막으로 확인한 것은 PHP가 귀찮아 질 수 있는지 여부를 결정할 수 없었고 마모되지 않았기 때문에 나이가 들수록 제대로 작동합니다 (수백 가지가 아니라면 수천 개의 성공 사례가 있습니다. 다운로드) 갑자기 작동을 멈 춥니 다. 그것은 스크립트를 차단하는 조건이 있기 때문에 다운로드 할 수없는 이미지를 처리하려고하는 것이 아니라 나머지 처리에 실패하는 경우에도 종종 image does not exist의로드를 보게됩니다. 내가 다시 실행하고 나중에 모든 누락 된 이미지를 처리하는 또 다른 스크립트를 작성하는 데 끝났다.

모든 생각은 정말 감사하게 받아 들여질 것입니다!

그런데 이것은 Amazon Linux OS를 사용하는 대형 AWS EC2 인스턴스에서 실행됩니다. 우리는 내가 같은 문제를 처리했다 PHP5.3

+0

그런데는/usr/빈/PHP5, 나는 시도 것을 발견 CLI에서 작동하는'/ usr/bin/php -f /path/to/second/script.php/path/to/image/to/process.jpg'에도 스크립트가 여전히 똑같은 문제가 있습니다. PHP 안전 모드가 꺼져 있습니다 –

+0

해결 했습니까? 나는 또한 아마존 centos 7에이 문제가있다. – Silko

+0

안녕 @ 실코. 나는 한 번도 안했다. 내가 게시 한 후 몇 달 동안 그 역할을 떠났으므로 나는 그 이후로 내게 문제가되지 않았다. :) –

답변

0

실행하고 나는 할 명령을 변경/paht /에/PHP는