2017-10-11 21 views
0

PHP shell_exec()에 문제가 있습니다.PHP shell_exec가 작동을 멈춤

배경 : 내가 사용했습니다 shell_exec()를로 (HTML 자바 스크립트 (AJAX)와 PHP 모든 작품 정말 잘을 사용하여 웹 브라우저를 통해 임베디드 리눅스 대상 (. 즉, 라즈베리 파이)에 액세스 할 수 나는 이것에 관한 보안 문제를 알고 있지만 이것을 적용하지는 않는다.) 현재 PHP v 5.6.31Apache2 v 2.4.27이 안정적으로 사용되고 있습니다.

문제 연장 사용 후 나는 shell_exec()이 반응하지 않게됩니다. 다음 예제는 /var/apache2/logs/error_log

... PHP 경고 : shell_exec() : '/ sbin/ifconfig ...'을 실행할 수 없습니다.

웹 서버는 여전히 브라우저에 페이지를 제공하고 있습니다. 나는 작동하는 터미널 창 (SSH/serial)을 통해 ifconfig를 실행할 수 있습니다. Shell_exec() 기능은 Apache2 서비스가 다시 시작될 때까지 복원되지 않습니다. Apache2와 PHP를 업데이트했습니다. 그러나 이것은 문제를 해결하지 못했습니다.

저는이 문제를 읽었으며 자원이 문제가 될 수 있다고 생각합니다. 예 : 가비지 수집. php.ini(session.gc_probability, session.gc_divisor)에 다음 값을 업데이트 해 보았지만 행운은 없습니다.

귀하의 의견은 /이 문제에 경험 주시면 감사하겠습니다 :)

잘 부탁 드리겠습니다.

+0

은 데이터를 추출하는 모든 방법을 사용합니다. 임씨는 임베디드 리눅스 타겟을 쿼리하는 PHP와 아파치가 느리고 값 비싼 (자원 배고픈) 방법이라는 느낌을 받고있다. – joebloggs

+0

... 웹 소켓을 사용하는 것이 시스템의 쿼리 프로세스를 구현하는 더 좋은 방법이다. – joebloggs

+0

이전 질문을 철회합니다. exec 문제가 여전히 웹 소켓과 함께있는 것처럼 보입니다. 현재'PHP : Warning : exec() :/path/to/websocket_server.php'에서 [pwd]를 포크 할 수 없습니다 – joebloggs

답변

0

apache/PHP 응용 프로그램이 액세스 할 수 있도록 허용하려면 스크립트의 사용 권한을 변경하려고 시도 했습니까?

+0

권한이 이미 설정되었습니다 - – joebloggs

0

shell_exec()는 실행을 끝내기 위해 실행하는 스크립트가 끝날 때까지 기다립니다. 문제가 무엇이든지간에 실행하십시오.

+0

포인트는 선상에 있지만 그 경우는 아닙니다. 이 하나. 다른 응용 프로그램을 사용할 때 여전히 문제가 발생합니다. – joebloggs