>  기사  >  백엔드 개발  >  Linux에서 PHP를 실행할 때 외부 쉘 스크립트 시스템이 126을 반환합니다.

Linux에서 PHP를 실행할 때 외부 쉘 스크립트 시스템이 126을 반환합니다.

WBOY
WBOY원래의
2016-12-01 00:56:422049검색

<code><?php
$command = '/var/www/html/fzip.out  /var/www/html/test  /var/www/html/test.fzip';
//$command = 'ls /var/www/html';
system($command,$return);
exec($command,$out);
//echo $command;
print_r($return);
echo '<br>=================<br>';
print_r($out);?></code>

첫 번째 $command는 자체 쉘 스크립트이며, 두 번째 매개변수의 폴더를 세 번째 파일의 경로로 압축하는 것이 목적입니다. 현재 상황에 대해 말해주세요.
1 php.ini가 안전모드가 아니어서 ls 및 기타 명령어를 정상적으로 호출할 수 있습니다.
2 시스템은 이 명령을 실행하면 126을 반환하고 exec의 두 번째 매개변수는 비어 있습니다.
3 생성된 파일의 html 디렉터리에는 777 권한이 부여되었으며, 압축된 테스트 디렉터리에도 777 권한이 부여되었습니다
4 명령줄을 사용하여 이 명령을 직접 실행할 수 있습니다

이러한 사용자 정의 스크립트를 실행하는 데 필요한 구성이 있나요? ?

답글 내용:

<code><?php
$command = '/var/www/html/fzip.out  /var/www/html/test  /var/www/html/test.fzip';
//$command = 'ls /var/www/html';
system($command,$return);
exec($command,$out);
//echo $command;
print_r($return);
echo '<br>=================<br>';
print_r($out);?></code>

첫 번째 $command는 자체 쉘 스크립트이며, 두 번째 매개변수의 폴더를 세 번째 파일의 경로로 압축하는 것이 목적입니다. 현재 상황에 대해 말해주세요.
1 php.ini는 안전모드가 아니기 때문에 ls 및 기타 명령어를 정상적으로 호출할 수 있습니다.
2 시스템은 이 명령을 실행하면 126을 반환하고 exec의 두 번째 매개변수는 비어 있습니다.
3 생성된 파일의 html 디렉터리에는 777 권한이 부여되었으며, 압축된 테스트 디렉터리에도 777 권한이 부여되었습니다
4 명령줄을 사용하여 이 명령을 직접 실행할 수 있습니다

이러한 사용자 정의 스크립트를 실행하는 데 필요한 구성이 있나요? ?

드디어 selinux에 의해 실행이 차단된 것으로 확인되었습니다. 결과는 참고용으로 남겨두겠습니다. 성능은 php-cli 모드에서는 스크립트를 정상적으로 실행할 수 있고, 웹페이지에서 실행하면 126을 반환한다는 점이다. sudo를 추가하면 1을 반환한다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.