2017-11-18 2 views
0

안녕하세요. 서버 구성에서 평균입니다. PHP-FPM을 사용하는 경우 웹 사이트에서 일부 명령을 실행하기 위해 PHP exec 함수를 사용하고 있습니다. . 아무도 왜이 문제를 일으키는 지 압니까? 다음은 당신의 도움이 사전에 명령을FPM이 활성화되어있는 경우 php exec, system 및 passthrough 기능이 작동을 멈춘 이유

$cmd="pdftk " . $pdf_to_fill . " fill_form " . $fdf_file . " output $outputfile 2>&1"; 
exec($cmd, $output, $return_var); 

감사를 실행하는 PHP 함수입니다.

답변

0

이것은 몇 가지가 될 수 있습니다. 먼저 exec가 사용 설정되어 있는지, 안전 모드가 설정되어 있는지, Google이 jailed shell에 있는지 확인하십시오.

if(function_exists('exec')) { 
    echo '<h1>exec is available.</h1>'; 
} 
if(ini_get('safe_mode')){ 
    echo '<h1>Safe mode is on.</h1>'; 
} 

수감 쉘이 감지 좀 더 열심히,하지만 var_dump(scandir('/bin/'))를 실행하는 경우, 표시를 줄 것이다 :

처음 두이 스크립트를 수행 할 수 있습니다, 그냥 당신이 그것을 액세스 할 때 출력을 확인 명령 줄에서 실행 한 경우보다 파일이 훨씬 적습니다. 그러면 jailed shell을 사용하게됩니다.

또한 pdftk 바이너리의 전체 경로를 사용하는 것이 좋습니다. 여전히 작동하지 않으면 pdftk의 경로에서 is_executable을 실행 해보십시오.

관련 문제