2013-08-23 1 views
0

PHP에서는 unc 경로를 사용할 때 shell_exec, system 또는 exec를 통해 명령을 실행할 수 없습니다.UNC 경로를 사용하는 PHP shell_exec

작동 무엇 : 여기

$command = shell_exec("dir c:\\"); echo $command; 

작동하지 않는 것입니다 다음은 예입니다. 그것은 에코가 아닙니다. 나는 Windows 명령 창 또는 PowerShell에서 디렉토리 \\ 서버 \ 디렉토리을 실행하면

$command = shell_exec("dir \\\\server\\dir"); echo $command; 

은 그것을 잘 실행됩니다.

+1

로그인 한 웹 서버와 동일한 웹 서버 (예 : Apache)를 실행중인 사용자 계정이 있습니까? 또한 'net use'를 사용하여 원격 디렉토리에 드라이브 문자를 할당 할 수도 있습니다. – dnet

+0

Windows를 코딩하는 경우에도 경로에 백 슬래시를 사용하지 마십시오. PHP는 적절한 구분 기호로 자동 번역됩니다. 일반 슬래시로 고정하십시오. 대신'dir // server/dir'을 시도하십시오. –

답변

1

UNC 경로가 작동하지만 PHP 서비스가 실행중인 사용자는 공유에 액세스 할 수 있어야합니다.

IIS로 PHP를 실행한다고 가정합니다. 이 경우 기본 사용자는 IUSR_MachineName입니다. 이 사용자가 공유에 액세스 할 수 있는지 확인하십시오.

Apache를 실행중인 경우 서버의 작업 관리자를 확인하여 Apache 서비스를 실행중인 사용자를 확인하십시오. 이 사용자 이름에 공유에 대한 액세스 권한을 부여하십시오.

+0

PHP가 IIS에서 실행 중입니다. 어떻게 사용자를 IUSR_ 에서 다른 계정으로 변경할 수 있습니까? – user2475310

+0

아마 서버 오류에 관한이 질문은 당신을 도울 것입니다 : http://serverfault.com/questions/83947/iis7-running-a-site-under-a-limited-user-account –