2013-10-10 3 views
0

현재 로컬 네트워크에서 한 서버 (서버 1)에서 실행되지만 다른 서버 (서버 2)에 대한 쓰기 액세스가 필요한 내부 용 Django 응용 프로그램을 개발 중입니다. 데이터가 데이터베이스에 저장 될 때.Django와 Apache : 네트워크의 다른 서버에 폴더 만들기

새 레코드가 저장되면 Django는 적절한 폴더 이름을 사용하여 외부 서버 (서버 2)에 새 디렉토리를 만듭니다. 이것은 전체 로컬 네트워크에 액세스 할 수있는 Django 테스트 서버에서 잘 작동했습니다.

이제 Apache와 mod_wsgi를 사용하여 장고 응용 프로그램을 성공적으로 배포했지만 폴더 생성 절차가 더 이상 작동하지 않습니다. 나는 몇 가지 시도했지만 신속하게 해결할 수 없습니다. 어떤 아이디어? 이것은 장고와 아파치로 실제로 구현할 수 있습니까?

def create_folder(self,request,obj,form, change, serverfolder, templatefolder): 

    try: 
     source_dir = templatefolder # Replace with path to project folder template 
     if not os.path.exists(destination_dir): 
      dir_util.copy_tree(source_dir,destination_dir) 
      obj.projectfolder = destination_dir 
      messages.success(request,"Project folder created on %s" % (serverfolder)) 
      obj.create_folder = False 
      obj.has_folder = True 
     else: 
      messages.warning(request,"No new project folder created on %s server" % (obj.office.abbreviation)) 
    except Exception,e: 
     messages.warning(request,str(e) + " Error during project folder creation on %s server!" % (obj.office.abbreviation)) 



def save_model(self, request, obj, form, change): 
     serverfolder = r'\\C-s-002\Projects' #C-s-002 is the external server in the same local network as the server on which Django is running 
     templatefolder = r'\\C-s-002\Projects\XXX Project Template' 
     self.create_folder(request,obj,form, change, serverfolder, templatefolder) 
+0

다른 서버 (서버 2)에 연결할 수 없습니다. 'serverfolder'에는 무엇이 들어 있습니까? – alexvassel

+0

코드 자체에서 연결이 이루어지지 않습니다. 장고 프로젝트는 C-s-001에 있습니다. 실행 중일 때 \\ C-s-002 \\ Projects가 유효한 폴더가 아님을 알리는 오류가 발생합니다. – brunostuyts

+0

다른 서버 (예 : ssh)에 연결하여 쉘 명령을 실행할 수있는 코드를 작성해야합니다. – alexvassel

답변

0

당신이 여기 취할 수있는 다양한 방법이있다, 그래서 모든 가능성을 소진하지 않습니다 :

옵션 1 : Call an external command with Python합니다. 이것은 Django 나 Apache에만 국한된 것이 아닙니다.

옵션 2 : 서버 1에서 필요로하는 파일/디렉토리 생성을 처리하기 위해 API 호출을 통해 액세스 할 수있는 서버 2에서 웹 서비스를 설정하십시오. 이것은 장고로 구현 될 수 있습니다.

+0

Django 및 Apache에서 외부 명령을 호출하면 다른 문제가 발생할 수 있습니다. http://stackoverflow.com/questions/8309465/popen-does-not-work-anymore-with-apache-wsgi-and-python-2-7-2 내가 2 번째 옵션으로 가야 할 것 같은데. – brunostuyts

관련 문제