2010-03-24 8 views
0

로컬 시스템의 파일을 서버에 복사하는 PHP 스크립트를 작성하려고합니다.다른 서버에 PHP 파일 복사; 다른 서버의 파일 시스템에 액세스

$ destination_directory = 'I : \ path \ to \ file'. $ theme_number;

if (! @ opendir ($ desination_directory)) { echo '죄송합니다. 대상 디렉토리를 찾을 수 없습니다.'; die(); }

해당 프로세스에서 대상 폴더에 대한 액세스를 확인하고 오류가 계속 표시됩니다. 누구든지 내가 뭘 잘못하고 있는지 알아? 나는 그 밖의 모든 것을 제자리에 거의 가지고 있습니다. 나는이 다른 서버에 액세스하는 방법을 모른다.

부록 : 기술적으로 올바르므로 아래 답변을 수락했으며 IIS 서버에서 Apache 서버를 허용 할 수있었습니다. 스크립트를 자유롭게 사용하여 파일을 서버로 이동), 실행 불가능합니다. 필자는 각 컴퓨터에 특정 기능을 설정해야했습니다. 파일을 복사하려는 서버에 스크립트를 설정 한 다음 로컬 드라이브에서 더 일반적인 방법으로 해당 위치로 스크립트를 옮기는 것이 가장 좋은 해결 방법 인 것 같습니다. 그것은 우리 서버가 가지고 있지 않은 CGI-exec 기능을 가진 파일 서버를 의미합니다.

+0

코드에서 해당'@ '기호를 제거하면 자세한 설명을 얻을 수 있습니다. –

답변

2

난 당신이 창에 있는지 그리고 당신은 내가 가진 것을 추측에는 요 : 그렇다면 예 : \\ 서버 2의 \ 파일로 공유에 매핑 ...

, 그건 당신의 문제입니다. 이러한 매핑은 현재 사용자 (예 : admin 계정)에게만 사용 가능하며 PHP가 IIS에서 실행중인 IUSR 계정에는 사용할 수 없습니다. 해결책, 매핑을 사용하지 말고 대신 '\\ server \ share \ folder \ file.ext'와 같은 전체 'unc'경로 이름을 사용하고 IUSR 계정이 이러한 공유/폴더/파일에 액세스해야 함을 기억하십시오

+0

당신의 솔루션은 흥미로운 것으로 들립니다. 나는 네트워크 파일 구조에 익숙하지 않다. (물론 이런 프로젝트에 익숙해 져야한다.) 오늘 '\\ server \ share \ etc \'에 매핑하려고했으나 여전히 작동하지 않았습니다. – dclowd9901

+0

은 sysinternals에서 멋진 ProcMonexe를 시작하고 계정이 무엇인지보고 어떤 파일에 액세스하려고하는지 제안합니다. 그냥 시작하고 '결과 성공'을 걸러 내고 다른 파일을 io라고 입력하면됩니다. – SteelBytes

+0

참고로, 저는 서버 이름이 정확하다는 것을 확신합니다.하지만 제 프로 시저가 엉망이라고 생각합니다. 서버는 거의 확실하게 IIS이고, 현재 우리가 그것을 통해 얻을 수있는 유일한 액세스는 표준 Windows 작업 그룹 액세스입니다. PHP를 어떻게 작동시키는 지 알 필요가 있습니다. – dclowd9901

0

I:\path\to\file\\을 통해 다른 서버에 액세스 할 수 있습니까?

PHP가 디렉토리를 여는 중 오류를보고하는 경우 PHP가 존재하고 액세스 권한이 있는지 확인하고자 할 수 있습니다.

두 개의 슬래시 (\\)도 문제를 일으킬 수 있습니다. 확인해보십시오.

+0

해당 경로를 통해 로컬 파일 시스템에 액세스 할 수 있습니다. 어떤 프로토콜을 통해 액세스해야합니까? 두 개의 슬래시가 필요합니다. 하나는 다른 하나를 벗어납니다. – dclowd9901

+0

@ dclowd990 아마도 SMB 프로토콜입니다. 그러나 당신이 "로컬"이라고 부르는 머신 - 서버 또는 클라이언트 중 하나? –

+0

내가 앉아있는 기계 일 것입니다. – dclowd9901

0
$destination_directory = 'I:/path/to/file/' . $theme_number; 
+0

나는 실제로이 콤보를 시도했다. 일하지 않았어. – dclowd9901

관련 문제