오늘은 AjaXplorer로 간단히 웹하드를 구축해보겠습니다. 예전에 용한님이 한번 소개해달라고 하셨는데, 한동안 바쁘다보니 테스트를 해보지 못했습니다. 오늘 드디어 셋팅해보고 잠깐 (30분) 만져본 후 이 글을 올립니다. 그러니까 저는 AjaXplorer에 대해 전혀 모릅니다. 제가 소개해드릴 부분은 지극히 기본적인 부분이니 좀 더 구체적인 튜닝을 원하신다면 구글링 해보시기 바랍니다.

1. 홈페이지

http://www.ajaxplorer.info/wordpress/

일단 홈페이지에서 소스를 다운받으시고

2. 웹서버 구축

웹서버는 윈도우 환경에서 설명드리겠습니다. 기본적으로 IIS에 PHP를 수동으로 설치해도 되겠지만, 초보자 분들에겐 APMSETUP을 추천드립니다. IIS에 PHP를 설치할 경우 손대야 할 부분이 너무 많기 때문입니다. 그에 반해 APMSETUP은 별다른 설정 없이도 바로 사용이 가능하기 때문에 초보자 분들에게 추천합니다.

APMSETUP은 아래 홈페이지에서 다운로드 받으세요.

http://www.apmsetup.com/download.php

3. PHP 설정

APMSETUP을 설치한 후 AjaXplorer 소스를 APM_Setup\htdocs 폴더에 몽땅 복사하시고, 로컬 호스트(127.0.0.1)로 접속해보면 아래와 같은 화면이 뜹니다.


경고 내용이 2가지인데요, 첫번째는 PHP 세션 문제입니다. 이 경고를 해결하시려면...

APM_Setup 폴더에 보면 php.ini 파일이 있는데, 이 파일을 편집하시면 됩니다.

session.save_path =

위 부분이 앞에 세미콜론으로 주석 처리가 되어 있는데요, 세미콜론을 지우고 여기에 PHP 세션 파일을 저장할 경로를 적어주시면 됩니다. 없는 디렉터리를 자동으로 만들어주지는 않기 때문에, 일단 디렉터리를 먼저 만드시고 그 경로를 넣어주세요. 저는 D:\APM_Setup\Server\PHP5 아래에 sessions 폴더를 하나 생성한 후 저기에 경로를 넣어줬습니다.

session.save_path = "D:\APM_Setup\Server\PHP5\sessions"

파일을 저장하고, 아파치를 재기동한 후 접속해보니 PHP 세션 경고는 사라졌습니다.


그 아래 SSL 암호화 경고는 그냥 무시하겠습니다. 저는 SSL을 사용할 생각이 없기 때문에...

다음은 PHP 업로드 용량 제한을 풀어줘야 합니다. APMSETUP을 설치하면 기본적으로 PHP에 350M 제한이 걸려 있는데요, 웹하드 용도로 사용한다면 용량 제한을 좀 더 크게 잡거나 아니면 풀어줄 필요성이 있겠죠? 이 설정은 UI로 바로 가능합니다. 물론 아까처럼 메모장으로 편집하셔도 되지만요...

APMSETUP 서버 환경 설정으로 들어가셔서 PHP 탭으로 가신 다음 아래 부분을 수정하시면 됩니다.


그런데 한가지 문제점이 있습니다. 매우 치명적인 문제점인데... 제가 잘은 모르지만 HTTP에서 POST 방식으로는 2G 이상 전송이 불가능한가 봅니다. (PHP 문제로 추정하고 있습니다.) 브라우저에서 제약을 하는건지... 정확한 원인을 아시는 분은 알려주세요. 아무튼 그래서 PHP 설정에 post_max_size 부분에 2047M을 입력하는게 최대입니다. 2G 또는 2048M 이상을 입력하게 되면 로그인조차 되지 않습니다. ㅠㅠ


물론 이것도 PHP 수정이라서 아파치를 재기동 하셔야 설정이 적용됩니다.

4. 파일 업로드 개수 제한 풀기

기본적으로 한번에 업로드할 수 있는 파일의 개수는 16개로 설정되어 있습니다. 이 설정을 무제한으로 풀어주려면

APM_Setup\htdocs\server\conf\conf.php 파일에서 아래 부분을 수정해주세요. 0으로 수정하시면 무제한으로 풀립니다.

$upload_max_number = 16;

5. 휴지통 없애기

지극히 개인적인 취향입니다만, 저는 휴지통을 사용하지 않습니다. 윈도우에서도 휴지통을 사용하지 않는데 저처럼 설정하고 싶으신 분은 아래 글을 참조하세요.

2010/06/03 - [컴퓨터 관련 팁] - 바탕화면에서 휴지통 제거하는 방법

아무튼 AjaXplorer에서도 휴지통을 제거해보겠습니다.

우선 휴지통이 자동으로 생성되게 하는 부분을 막아야 합니다.

APM_Setup\htdocs\server\conf\conf.php 파일에서 아래 부분을 수정하시면 됩니다.
그러니까 true 자리에 false를 넣으시면 됩니다.

$REPOSITORIES[0] = array(
 "DISPLAY"  => "Default Files",
 "AJXP_SLUG"  =>  "default",
 "DRIVER"  => "fs",
 "DRIVER_OPTIONS"=> array(
  "PATH"   => realpath(dirname(__FILE__)."/../../files"),
  "CREATE"  => false,
  "RECYCLE_BIN"  =>  'recycle_bin',
  "CHMOD_VALUE"   =>  '0600',
  "DEFAULT_RIGHTS"=>  "",
   === 이하 생략 ===

그리고 APM_Setup\htdocs\files 폴더에서 휴지통 폴더를 직접 제거해주시면 앞으로는 자동으로 생성되지 않습니다.

다음은 휴지통 기능을 사용하지 않도록 설정해야 합니다. 제가 맘대로 수정하는거라 이렇게 바꿔도 되는지는 모르겠습니다만...
아래 파일을 수정하시면 됩니다.

APM_Setup\htdocs\server\classes\class.RecycleBinManager.php

초반에 recycleEnabled 함수를 선언하는 부분이 나오는데

public static function recycleEnabled(){
 return (isSet(self::$rbmRecycle) && self::$rbmRecycle != null && is_string(self::$rbmRecycle));
}

저는 이 함수를 이렇게 바꾸었습니다. 방법이 야매같기는 한데 저는 개발자가 아니므로 양해 바랍니다. ;;;

public static function recycleEnabled(){
 return false;
}

아무튼 이렇게 2개의 파일을 수정해주니 휴지통이 자동으로 생성되지도 않고, 파일을 삭제할 때 바로 삭제가 되었습니다.

6. 로그인 및 기타

로그인 계정은 기본적으로 admin / admin 으로 설정되어 있습니다. 패스워드는 바로 변경해주시고, 여러 계정을 만들어서 사용자별로 폴더 권한을 다르게 설정하시려면 Settings에 들어가서 설정을 해주세요.



이상 간단 설명을 마치겠습니다. 추가로 궁금하신 내용은 검색을 통해 해결하시기 바랍니다. 그리고 저는 개인적으로 FTP 서버를 좋아합니다. 윈도우에서 IIS로 FTP 서버를 구축하실 분들은 아래 글을 한번 읽어보세요.

2010/11/21 - [Windows 7/기타 윈도우 7 이야기] - 윈도우 7에서 IIS로 FTP 서버 돌리기
2011/04/19 - [Windows 7/기타 윈도우 7 이야기] - 윈도우 7 FTP 서버 IIS 전용 계정 생성하기
2011/11/16 - [윈도우 일반] - IIS FTP 가상 디렉터리 추가시 보이지 않는 문제

업로드는 안하고 다운로드만 하려면 HTTP 서버로 해서 디렉터리 검색 기능을 활용해도 좋습니다.

2011/06/03 - [Windows 7/기타 윈도우 7 이야기] - 윈도우 7 IIS HTTP 파일서버 구축
신고

  1. BlogIcon deVbug
    2011.12.08 08:04 신고


    HTTP POST MAX SIZE의 경우 따로 스펙에 명시되진 않았다네요.
    http://serverfault.com/questions/151090/is-there-a-maximum-size-for-content-of-an-http-post
    웹브라우저에 정의된 최대값과 서버의 최대값 중 작은 쪽이 최대값이랍니다.
    어떤 브라우저를 쓰셨는지 모르겠는데 사용하신 웹브라우저가 2기가가 최대인가봐요. ㅎㅎ
    아, IE 쓰셨군요..

    • BlogIcon snpbox
      2011.12.08 10:18 신고
      수정 및 삭제

      말씀 듣고 찾아보니 HTTP가 아니라 PHP와 32비트의 한계인 것 같더라구요. 그런데 동일 환경에 IIS에 PHP를 설치하고 테스트해보니 post_max_size를 0으로 잡아도 로그인 잘 되네요. ;;; PHP 잘 아시는 분 없나 ㅠㅠ

    • BlogIcon deVbug
      2011.12.08 10:55 신고
      수정 및 삭제

      http://stackoverflow.com/questions/6425473/php-upload-size-and-its-impact-on-post-size-and-memory-limit
      memory_limit 때문이라는 글이 보이네요.
      그러고보니 저번에 이거 땜에 고생했던거 같기도 한데.. ㅋㅋ;;
      일단 물리 메모리의 실제 용량 문제도 있고 하니 -1 (무한대)로 하면 문제가 될거 같고 어쨌건 이게 문제가 된 것일 수도 있는거 같습니다.

      쓰고 보니 밑에 리플이 달렸네요 ㅋㅋ

    • BlogIcon jmnote
      2012.01.07 14:13 신고
      수정 및 삭제

      PHP API 최신버전조차도 윈도우용 파일입출력 모듈이 구식으로 만들어져 있어서 그렇습니다. 2기가 용량 문제 뿐만 아니라 UTF-8 파일명 문제도 있는데요. 윈도우에서 미디어위키 돌릴 때 한글 파일명이 문제가 되는 것도 이 때문입니다.

  2. BlogIcon hongyang
    2011.12.08 20:39 신고

    저를 비웃으실 것 같지만 물어봅니다.
    ftp와 뭐가 다른가요?

    • BlogIcon zardkim
      2011.12.09 13:13 신고
      수정 및 삭제

      크게 다른 것은 없습니다.
      웹하드는 사용자가 쉽게 접근하게 하는게 목적이라고
      보면 됩니다.
      그냥 주소 알려주고, 아이디/패스워드만 입력하면 되니까요.. 의외로 FTP는 잘 못알아 들으시는 분들이 많더군요..
      제 경험상 그렇습니다.

  3. 용한
    2011.12.09 03:31 신고

    수고 하셨습니다. 바쁘실텐데. 아는것과 가르치는건 차이가 있어서. 암튼 대단 하세요.

    업로드는 php.ini 에 post_max_size , upload_max_filesize,memory_limit 를 조정해주면 됩니다.
    upload_max_filesize < post_max_size < memory_limit
    직접 php.ini 를 수정 하시면 됩니다.

    왠지 모르게 2기가 밖에 안되는데 LG 넷하드에서도 2기가 까지 밖에 안됩니다.
    PHP의 한계가 아닐런지 모르겠어요. 테스트는 안해봤으나 64비트 OS 에서 memory_limit 를 2기가 이상으로 잡고 나머지도 2기가 이상으로 잡고 하면 되지 않을까요?

    ㅋㅋ 책 쓰시는건 어떻게 됐어여ㅛ???


  4. BlogIcon zardkim
    2011.12.09 13:11 신고

    오호~! 방금 보고 적용해보았습니다.
    아직 자잘한 버그가 좀 있지만 쓸만하군요~!

    대용량을 주고 받기에는 부적합하지만, 저용량 파일들은 주고받기에 좋군요~!
    인터페이스가 조금 더 편해지면 괜찮은 툴이 되겠군요~ㅎ
    개인용 웹하드 툴이 보기드문 소프트웨어라... 어느정도 버전업되기를 기대해 봅니다.

    덧붙혀서, 사용해본 후기는 로딩속도가 생각보다 느리다는 생각이 들고요
    사진이나, mp3 등은 자체 미리보기, 미리듣기가 되더군요
    한글언어팩도 지원됩니다. conf 파일에서 eu 로 되어있는 부분을 kr로 바꾸어 주면
    초기 로딩시 자체 한글로 표시됩니다.

    • pmpmpmsy
      2011.12.13 11:35 신고
      수정 및 삭제

      conf파일이 위에 언급되었던 conf.php 파일인가요?
      파일 편집을 하려하니 eu 라는 항목이 안보입니다 위치 부탁드립니다.

  5. 샤아전용zㅏ쿠
    2011.12.10 20:48 신고

    항상 스눞님 블로그 잘보고 갑니당 ㅎ

  6. 젊은기관사
    2011.12.11 21:36 신고

    저도 처음엔 apm 설치하고 AjaXplorer 사용했었는데 웹하드로는 약간 부족한 감이 있었죠
    그래서 찾아본결과 http://solution.linkhard.co.kr/linkhard_kr/
    들어가시면 apm 환경및 윈도우 리눅스
    환경에서도 설치할수 있습니다. 파일용량 2기가 제한도 없구요 자체 게시판 기능이 있어 웹하드를 사용하는
    사용자들과 커뮤니티환경을 만들수도 있고 모바일접속기능도 있습니다.

    • BlogIcon zardkim
      2011.12.10 00:37 신고
      수정 및 삭제

      오잉~ 이거 좋네요~ㅎ

      정보 감사합니다.

    • 나그네
      2011.12.10 03:08 신고
      수정 및 삭제

      아 님 글 보고 해봤는데용

      베리즈 웹 쉐어처럼

      원래 하드에 있는 폴더 바로 공유는 안돼나요?

      업로드를 무조건 해야하는건지 모르겠습니다 ㅠ

    • 젊은기관사
      2011.12.10 06:34 신고
      수정 및 삭제

      가능합니다 웹하드메뉴 왼쪽에보심 플러스디스크공간이있죠 거기에 폴더위치정해주시면됩니다 그리고 나서 새로고침하면되구요 다만 무료버젼에서는 자동으로 새로고침이안되서 파일추가하믄 새로고침눌러주셔야 됩니다

    • pmpmpmsy
      2011.12.13 16:23 신고
      수정 및 삭제

      헙 이거 간단한 메뉴얼 같은것 없을까요?? ㅠㅜ

    • 용한
      2011.12.14 01:44 신고
      수정 및 삭제

      PHP File Navigator 도 괜찮지만
      PHP5 기반으로 소스가 공개 되어 있어서 내부에 어떻게 돌아 가는지 분석 하면서 적절하게 고칠수 있어서 도움이 많이 됩니다. serialized 된 PHP 객체파일로 되어 있지만 다 분석 해야 DB와 연동할수 있을듯.. 인트라넷으로 만든 계정 시스템과 연계하려고 하는데 어렵네요.

      IonCube 같은 소스 잠금 장치를 해놨네요. 상용이면 바람직 하겠죠.

  7. pmpmpmsy
    2011.12.12 16:52 신고

    문의사항이 있어 글 남깁니다.
    php.ini 파일 내용중에
    session.save_path = <-이부분
    과 같은 형식이 3곳이 있더군요. 한곳만 수정하는건가요??

  8. 컴맹
    2011.12.12 19:28 신고

    스누피님 실례지만, 댓글로 질문좀 남길게요...
    제가 스누피님 xp를 설치했는데요,
    테마를 블랙으로 변경했는데, 원상태로 돌릴방법이 없나요??

  9. 이경원
    2011.12.14 08:47 신고

    WEBDAV 로 구성해도 좋을것 같은데 이상하게 WEB으로는 연결이 되는데 넥드라이브로는 연결하면 아이디랑 패스가 안먹혀요 스누피님 부탁드려요..

    • BlogIcon snpbox
      2011.12.14 22:31 신고
      수정 및 삭제

      저는 WEBDAV를 구성해본 적이 없어서, 이거랑 연동하는 부분은 더더욱 모르겠습니다.

  10. BlogIcon LuckySh
    2012.01.10 19:26 신고

    AjaXplorer가 원래 2GB이상은 업로드가 안되도록 만들어 진 걸로 압니다.
    그런데 ApmSetup대신 000Webhost.com을 써도 되나요?
    그리고 php.ini내용속에 "session.save_path ="가 3개나 있는데 뭘 수정해야 하나요?

    [Session]
    ; Handler used to store/retrieve data.
    session.save_handler = files

    ; Argument passed to save_handler. In the case of files, this is the path
    ; where data files are stored. Note: Windows users have to change this
    ; variable in order to use PHP's session functions.
    ;
    ; As of PHP 4.0.1, you can define the path as:
    ;
    session.save_path = "C;/APMS/Server/PHP5/sessions"
    ;
    ; where N is an integer. Instead of storing all the session files in
    ; /path, what this will do is use subdirectories N-levels deep, and
    ; store the session data in those directories. This is useful if you
    ; or your OS have problems with lots of files in one directory, and is
    ; a more efficient layout for servers that handle lots of sessions.
    ;
    ; NOTE 1: PHP will not create this directory structure automatically.
    ; You can use the script in the ext/session dir for that purpose.
    ; NOTE 2: See the section on garbage collection below if you choose to
    ; use subdirectories for session storage
    ;
    ; The file storage module creates files using mode 600 by default.
    ; You can change that by using
    ;
    session.save_path = "C;MODE;/APMS/Server/PHP5/sessions"
    ;
    ; where MODE is the octal representation of the mode. Note that this
    ; does not overwrite the process's umask.
    session.save_path = "/tmp"

    참고로 제가 설치한 AjaXplorer는 4.0.1입니다.

    • BlogIcon snpbox
      2012.01.11 23:09 신고
      수정 및 삭제

      아무거나 하나만 수정해주시면 됩니다. 세미콜론으로 주석처리가 안 되도록만 해주시면 되죠.

    • BlogIcon LuckySh
      2012.01.19 01:16 신고
      수정 및 삭제

      그렇게 했는데도 저 오류메세지는 사라지지 않더군요...
      답변해 주실 수 있으신진 모르겠지만 LGNas에서도
      AjaXplorer를 쓰는듯 하던데 LGNas의 AjaXplorer는 어떻게 업뎃하는지...

  11. 편수빈
    2012.01.11 14:19 신고

    궁금해서 저도 여쭤보고 싶습니다 구축을 해서
    admin으로 로그인후 로그아웃하고나서
    다시 들어가려하면 에러가 계속 나는데
    혹시 이부분 해결은 어떻게 해야 하는지 아시나요??

  12. BlogIcon wine barrels
    2012.08.31 17:33 신고

    저는 포맷하면 그냥 다시 다 설정하기 때문에..패스입니다.ㅋ

  13. BlogIcon 카이젠
    2012.11.08 17:18 신고

    최근 업데이트로 인해서 인지, AjaXplorer\server 라는 경로가 사라졌으며,
    classes\class.RecycleBinManager.php
    파일은 AjaXplorer\core\classes\class.RecycleBinManager.php
    으로 바뀐 것을 확인 했으나, conf\conf.php는 어디로 갔는지 찾을 수가 없더군요.

    Ps: 휴지통을 설정하는 $REPOSITORIES 함수는 conf\bootstrap_repositories.php 안에 있더군요 (포럼검색)