2011-08-03 5 views
0

내 환경 내 시스템 경로에 (tar.exe로 변경) php5.3 아파치 + 창 + XP + bsdtar.exe입니다shell_execute 윈도우에서 아파치에 타르를 실행하지 않습니다

내 추출물에서이 코드를 .php : shell_exec ('tar --no-same-permissions -xjf "C : \ Documents and Settings \ abcxyz.tar.bz2"');

내가 좋아하는,있는 CmdLine에서 PHP 클라이언트를 사용하여 extract.php 실행할 수 있습니다 PHP는 extract.php

하지만 로컬 서버에서 실행하려고 할 때마다, 타르가 실행되지 않습니다. 내 PHP와 아파치 경로 모두 포함 된 tar.exe 폴더가 있습니다.

이유가 확실하지 않은 이유는 무엇입니까?

답변

0

당신이 실행하는 경우 (PHP_OS 또는 php_uname('n') 사용) 직접 PHP에서, 당신은 사용자 대신에 그 명령을 실행합니다, 대신 Apache는 권한이없는 다른 계정 마녀입니다.

services.msc를 실행하고 apache 서비스를 찾아 마우스 오른쪽 버튼> 로그온 탭에서 로컬 시스템 계정에서 사용자 생성 계정으로 변경하고 사용자 이름과 암호를 입력 한 다음 서비스를 다시 시작하십시오.

+0

대단히 감사합니다 !! 그게 내 문제를 해결해 줬어! – coderek

0

몇 가지 문제가 있습니다.

  1. 아파치가 어떻게 구성되어 있는지 잘 모르겠지만 대부분 CWD는 스크립트와 같습니다. 따라서 tar에 대한 전체 경로를 제공하십시오.

  2. 파일 이름은 'tar.exe'이며 'tar'는 아닙니다. 그것을 변경하십시오.

  3. dev에있는 PHP가 안전 모드에서 실행되고 있지 않은지 확인하십시오. shell_exec()은 PHP가 안전 모드에서 실행될 때 작동하지 않습니다.

당신은 당신의 코드가 리눅스 박스뿐만 아니라 창 dev에 상자 모두에서 운영하는 호스트 - 또는 플랫폼 별 구성 파일을 만들려면

관련 문제