docker로 에어코믹스 스트리밍 서버 구축하기


지난 포스팅에서 docker에 apache-php서버 설치하는데 까지 잘 따라오셨나요?


아직 못하셨다면



docker에서 컨테이너가 실행 중인걸 확인하셨다면


이제 내부로 들어가서 서버 설정을 해보자구요!


1. docker의 "비디오 형식" 탭에서 실행 중인 컨테이너를 더블 클릭해줍니다.


2. 컨테이너 설정 - 터미널 탭에서 [생성] 버튼을 눌러 bash를 열어줍니다.


3. 터미널에 다음과 같이 입력합니다 

 wget -O master.tar.gz https://github.com/song31/comix-server/tarball/master (압축파일 다운로드)


4. 명령어 ll을 쳐서 master.tar.gz파일이 다운된걸 확인합니다.


5. 파일이 확인되면 다음 명령어를 수행하여 압축을 해제합니다.

chmod 755 master.tar.gz (파일 권한 변경)

tar xzvfa master.tar.gz  (압축해제)

압축이 해제되고 나면 ll명령어를 통해 song31-comix-server-9d2630a/ 하늘색 디렉토리가 생성됩니다.


6. 자 이 다음부터 쭉 아래 명령어를 입력합니다.

mkdir /var/www/comix-server (웹서버 루트 폴더 생성)

cp ./song31-comix-server-9d2630a/*php /var/www/comix-server (cp 뒤 .반드시 포함, song31폴더 안의 모든 php파일을 루트 폴더로 복사)

cd /var/www/comix-server (웹서버 루트 폴더로 이동)

ll (폴더 내 파일리스트 출력)

php파일 3개가 보이면 제대로 진행되고 있는겁니다.

이제 하나씩 수정해봅시다.


vi index.php (vi편집기로 index.php 열기) 

다음과 같이 창이 열리면 i를 눌러 왼쪽아래에 INSERT(편집가능) 모드로 변경하고 진행하시기 바랍니다.


$dir_name = "comics" 이 빨간 글씨 부분을 수정해줍니다.

이전 포스팅에서 마운트폴더명을 다르게 설정하시분들은 해당 마운트폴더명을 적으셔야합니다.

ECS를 눌러 INSERT(편집모드)를 해제하고 해제되면 INSERT가 사라짐

:wq (변경사항을 저장하고 vi편집기 종료)

cd ~/ (홈화면으로 이동)

ll (폴더 내 파일리스트 출력)

이 화면으로 돌아왔다면 이제 apache서버 설정을 복사하고 수정해 봅시다.


cp ./song31-comix-server-9d2630a/conf/httpd.conf-comix /etc/apache2/sites-enabled/httpd-comix.conf (아파치 설정파일 복사)

vi /etc/apache2/sites-enabled/httpd-comix.conf (vi편집기로 httpd-comix.conf 파일 열기)

자 이제 파일이 열렸다면 위와 같이 내용을 수정해줍니다.


*유의점 맨 밑의 AliasMatch ^/comics(.*)$ /var/www/comix-server/handler.php의 comics부분을 설정하신 마운트폴더명으로 하셔야합니다.

AliasMatch ^/마운트폴더명(.*)$ /var/www/comix-server/handler.php


모두 수정하셨다면

:wq 명령어로 밖으로 빠져나오시면 됩니다.


7. 설정은 모두 완료되었고 아파치 서버를 재기동 시켜줍니다.

apache2ctl restart (아파치 서버 재기동) 

다음과 같이 메시지가 뜨는데 무시하셔 됩니다.


자 이제 잘되었나 확인하러 가봐야죠?

웹 브라우저에서 http://나스IP:31257로 접속하실때

다음과 같이 마운트 폴더명이 보이면 성공입니다.



나스IP는 192로 시작하는 내부IP가 아닌 외부IP를 입력하시기 바랍니다.


다음에는 보안 강화를 위해

스트리밍서버에 암호를 걸어보도록 하겠습니다.



저작자 표시 비영리 변경 금지
신고
  1. Gro 2017.10.22 11:37 신고

    다음편이 기다려 집니다. 1도 모르는데 따라오니 어느센가 뚝딱하고 만들었네요 감사합니다. // 아파치 설정파일 복사 부분에 "site"가 "sites"로 바뀌어야 하는게 아닌지 // 경로가 /volume1/data/comics 이면 마운트폴더명이 그대로 comics 인지 궁금합니다. // comics 페이지는 띄우기 성공했는데 ip:31257/comics를 들어가면 아무것도 안나오네요 어떻게 하면 좋은가요

    • 네 설정 복사부분에 site가 아니라 sites가 맞습니다^^, 덕분에 수정했네요. 감사합니다.

      마운트폴더명을 /volume1/data/comics로 하셨다면 /data/comics 전체를 마운트폴더명으로 생각하시고 다른 설정도 이와 같이 설정해주시면 될거 같네요~ 한번 수정해보세요~

      그리고 httpd-comix.conf 설정 이미지를 수정하여 올렸으니 변경 적용해보세요. 그러면 내부 내용이 보일것 같아요^^

    • 중간에 5번 과정에서 chmod 명령어를 기존에 chown으로 잘못 적어뒀었네요. 처음부터 다시 진행해보세요~^^

  2. 호랑호랑 2017.10.22 23:47 신고

    접속까지 잘 되었는데...나스ip/31257 하면 만화책 폴더가 잘 보입니다.

    그런데...핸드폰 앱에서 실행을 하면 처음 폴더로만 들어가지고 이후에는 목록을 불러올수 없다고 나오네요.

    이전에 시놀로지에 설치한 에어코믹스가 문제가 생겨서 아예 폴더를 못 읽어서 도커로 설치를 했는데...안되네요.

    설치 폴더가 보이는 것을 봐서는 제대로 잘 따라한 거 같은데..혹시 아시면 답변부탁드립니다.

    • 호랑호랑 2017.10.23 12:28 신고

      이전 문제는 제가 httpd-comx.conf 파일을 잘못 설정해서 그랬네요...T T...


      그런데...이제는 파일안으로 들어가지는 것 까지는 되는데...comics 안의 파일이 보이지를 않네요...

      에구...계속 산넘어 산이네요..

      혹시 아시면 답변 부탁드립니다.

    • 제가 3탄에서 적용될 보안 conf 내용 이미지를 잘못 올렸더라고요^^; httpd-comix.conf을 이미지를 수정했으니 다시 한번 설정 바꿔보시고 되는지 확인해보세요~

  3. 호랑호랑 2017.10.23 13:37 신고

    앞의 Gro 님과 같은 증상이네요.

    1단계부터 따라했는데...그렇네요.

    앱으로 해도 그렇고...컴퓨터로 해도 증상이 똑같네요.

    " comics 페이지는 띄우기 성공했는데 ip:31257/comics를 들어가면 아무것도 안나오네요 "

    귀찮게 해드려서 죄송합니다...열심히 검색도 해보고 재설치도 해봤는데..소용이 없어서요.



    • 네~ 윗글에도 댓글 다시 달았는데요

      httpd-comix.conf 설정 내용을 제가 3탄것과 바꿔 올린거 같으니 수정한 글 내용 보시고 다시 한번 진행해보세요~

      그래도 안되면 다시 댓글 달아주세요~

  4. 호랑호랑 2017.10.23 13:45 신고

    httpd-comix.conf 파일을 바꾸어서 해봤는데...

    여전히 같은 증상이네요.

    ...T T...

  5. 호랑호랑 2017.10.24 11:27 신고

    apache restart도 하고...chown을 바꾸고 처음부터 다시 해봐도....여전히 같은 증상이네요.

    도대체 뭘까요...별거 아닌 문제 같은데...제 서버 문제인지...Gro 님은 해결을 하셨을런지...

    그냥 넉두리입니다...^ ^

  6. Gro 2017.10.24 19:03 신고

    수정하신 세팅대로 다시 해봤는데 역시 폴더가 안보이는군요! 인터넷-공유기-nas로 연결되어있습니다. // 폴더에 http로 읽기 권한만 주었습니다. -> 동일증상 -> 상위 폴더에도 http 읽기 권한 주었습니다 -> 동일증상 -> putty로 들어가 만화책 폴더에 777권한을 줘버렸습니다 -> 동일증상

    • 혹시 공유기에 외부 31257 포트를 내부로 진입할 수 있도록 허용해주셨나요?

      외부IP를 통해 NAS로 접속할 경우 해당 포트가 막혀 있으면 접속할 수 없습니다.

      내부IP:31275로 접속했을때는 폴더에 접근이 되지만 외부IP:31275로 접속했을때는 안된다면 100% 공유기에서 외부접속 포트가 막혀 있는겁니다.

    • gro 2017.10.24 19:49 신고

      포트포워드로 내부IP 외부포트 31257~31257 내부포트 31257~31257 세팅했는데 이러면 열리나요? DDNS만 설정해놨지 포트 개방은 생각도 못했네요; 일단 저렇게 세팅했는데 결과는 똑같네요 그만 포기를 해야할까보네요.

    • 네 포트는 31257포트만 외부-내부 포트포워딩해주시면 되는데요. 포드포워딩시 NAS IP쪽 포트에 포트포워딩해주셔야해요.
      우선 폰으로 공유기 와이파이 접속하신다음에 192로 시작하는 내부IP:31257로 에어코믹스 앱에서 접속되는지 확인해보세요. 이게 만약된다면 공유기 설정에서 외부IP접속 관련해서 내부 NAS 31257 포트에 포트포워딩을 설정해주셔야합니다.

    • gro 2017.10.24 20:11 신고

      1)외부ip 주소로 31257포트 접속 comics 폴터는 보이나 내부목록x
      2)내부ip 주소로 31257 내부목록x
      3)DDNS주소(*.iptime.org) 31257 접속 내부목록 x

      혹시 다른걸로 확인할 방법은 없는건가요? 세팅문제인지 포트문제인지 이제는 감이 안오네요.

    • 2017.10.24 20:24

      비밀댓글입니다

    • 외부IP로 접속시 comics폴더가 보이신다면 외부에서 내부 아파치서버로 접속은 되는거 같은데요 이후 comics 폴더 밑에 내부 파일이나 폴더가 안보이신다면 설정 문제일 가능성이 커보입니다.

    • gro 2017.10.24 21:22 신고

      k.~ 지메일로 보내놨습니다. 시간되시면 확인해주세요ㅠ

  7. 호랑호랑 2017.10.24 23:33 신고

    저는 내부 ip로 하든, 외부 ip로 하든 증상이 comics는 보이지만 그 안의 폴더가 보이지 않더군요.

    gro 님도 저랑 같은 증상인듯.

    저도 인터넷 -> 공유기 -> nas 이런 구조인데..이 문제는 아닌듯도 싶구요.

    "외부IP로 접속시 comics폴더가 보이신다면 외부에서 내부 아파치서버로 접속은 되는거 같은데요 이후 comics 폴더 밑에 내부 파일이나 폴더가 안보이신다면 설정 문제일 가능성이 커보입니다. "

    ->> 이렇게 얘기 해주셨는데...설정은 어떤 설정을 말씀하시는 건지.... ^ ^,...

    • 설정이라고 하면 docker 내부의 index.php나 httpd-comix.conf쪽 설정입니다.
      Gro님은 메일로 설정 캡처본을 받아봤더니

      handler.php 부분을 임의로 수정하셨고

      컨테이너볼륨 설정과 docker 내부 설정이 일치하지 않더라고요.

      그래서 수정에 도움을 좀 드렸습니다.

      호랑님도 설정 캡처해서 메일 보내주세요. 확인해드릴께요

    • 2017.10.24 23:47

      비밀댓글입니다

  8. gro 2017.10.25 02:00 신고

    #오랜 연구(삽질)끝에 Aircomix 설치에 오의를 깨달았습니다. 제가 이해한것이 맞는지 틀리는지에 대해서 한번더 지적해주시면 감사하겠습니다.

    1) 볼륨 생성시 : 1강에서 파일/폴더의 경로를 'docker/aircomix'라 적어놓으셔서 저는 "아... docker로 aircomix를 돌리는데 필요한 공간이 저곳이구나! 그럼 마운트 경로(/Volume1/data/comixs)가 내 만화책들이 있을 곳이구나!!!"라고 생각해고 설치를 시작했는데요. 메일로 알려주셔서 깨달았습니다. 에어코믹스가 필요한 공간이 "마운트 경로"이고 내 만화책들이 있어야 할 공간이 "파일/폴더" 쪽이란 것을요.

    2) handler.php와 index.php의 활용 : handler.php의 기본값이 "/Volume1"인데 설명서를 파일 안에 읽어보면 마운트 폴더 이전까지의 경로를 적어놓으라고 적혀있더라구요 만약에 "/Volume1/docker/aircomix"라고 제가 마운트경로를 잡았다면 Handler.php의 값은 "/Volume1/docker", index.php의 세팅 값은" aircomix", httpd-comix.conf 에서도 AliasMatch ^/마운트폴더명(.^)$ 부분을 AliasMatch ^/aircomix(.^)$로 설정하니 별 이상이 없었습니다. 제가 귀찮은데도 두개의 php를 수정한 이유는 index.php부분과 httpd-comix.conf 에서 "docker/aircomix"로 세팅을 해놓으니 접속할 때 "ip:31257/docker/aircomix"로 접속을 해야하더라구요 그래서 handler.php에서 마운트 폴터 이전까지의 경로를 세팅하고 index.php에 마운트 폴터를 세팅하니 ip:31257/aircomix로 접속이 가능하게끔 귀찮더라도 하나 더 건들여 봤습니다. 이것도 병인듯ㅠ

    3) 만화책이 들어간 폴더의 권한 설정도 중요한 것 같습니다. : 완벽한 세팅인데 왜 만화책 목록이 안보이나 했더니 권한에 뭘 넣야할지 몰라서 "Everyone"을 읽기 권한을 주니 목록이 보입니다. 권한에 누가 들어가는지좀 한수 알려주세요. "http, users, filestation, guest"는 넣어봤지만 목록이 안보입니다.

    *마치며
    아무쪼록 좋은 강의지만 혹시 저처럼 착각하고 헤메이는 분이 있을까봐 길게 적어봤습니다. 명강사가 있어도 받아들이는 사람이 청개구리처럼 받아들이면 어떻게 되는지 잘 느꼈네요ㅠ

    • 네~ 잘되신다니 다행이네요.

      제 포스팅부분에서 파일/폴더 설명 부분에 대해서 좀 더 자세하게 수정해야겠네요.

      권한관련해서는 docker 자체가 접근할
      수 있게 SYSTEM이나 Everyone을 주시면 됩니다.

      저도 everyone으로 설정되어있어요.

  9. 호랑호랑 2017.10.25 13:25 신고

    드디어 저도 성공을 했습니다....정말 감사합니다..
    Gro 님처럼 핵심은 마운드 경로와 파일 폴더를 바꾸어해서 그런것이었네요.

    어차피 돈키호테님이 훌륭하게 정리하셨으니...앞으로 저같은 초보가 헛갈리지 않도록 약간의 본문내용 수정 부탁드립니다.

    첫번째..DOCKER로 에어코믹스 스트리밍 서버 설치하기 1/3 의 3번에서 "파일/폴더는 만화책이 있는 경로이고 마운트폴더는 에어코믹스를 설치하는 장소이다." 요런 멘트.
    따라서 에어코믹스를 설치하는 마운트폴더는 만들어줘야 한다는거.

    두번째.. DOCKER로 에어코믹스 스트리밍 서버 설치하기 2/3 의 6번 httpd-comix.conf 파일 수정에서 "AliasMatch ^/마운트폴더명(.^)$ /var/www/comix-server/handler.php" 이것을 " AliasMatch ^/마운트폴더명(.*)$ /var/www/comix-server/handler.php" 요렇게 바꾸어주심이.
    ^ -> *......화명캡처에서는 *인데 글에서는 ^ 이라고 해놓으셔서...(아주 초보인 전 이런것도 헛갈려서용...)

    세번째..개인적으로 저도 Gro 님처럼 volume1/docker/comics 이렇게 만들어서 handler.php, 도 바꾸어주는게 편하네요...(volume1/comics 파일을 만드는법 자체를 잊어버린 슬픈 1인, 공유폴더를 만들어야 하는 거 같긴 한데.)

    어쨌든 너무나도 감사합니다...꾸벅.

    하신김에 비밀번호 설정하는 법도 부탁드리면.....화 낼실건가요?









    • 고생끝에 성공하셨다니 축하드립니다 ^^

      포스팅에 오타도 있고 그래서 더욱 힘드셨겠네요.

      피드백 주신 사항은 참고해서 좀 더 좋은 포스팅으로 찾아뵙겠습니다.

      비밀번호 설정하는 건 3/3에서 포스팅할 계획이니까 ^^ 기다려주세요

  10. 기사를아는가 2017.12.04 19:45 신고

    안녕하세요,

    작성해주신 포스팅 대로, 설치 및 설정하였으나,

    아이피주소 : 31257 로 접속시, comics라는 폴더는 보여집니다. 정상인듯 합니다.

    다만, 아이피주소:31257/comics로 접속하면, 그 하위에 있는 폴더는 보여지지 않고,

    파일을 화면에 보여집니다. 폴더가 보여지지 않는 걸로 봐서 먼가 설정상에 문제가 있는듯한데,

    무엇때문인지 전혀 모르겠습니다. 바쁘시겠지만 도움 부탁드리겠습니다.

    • 서주형 2017.12.04 20:10 신고

      확인해보니 약간의 문제가 있는듯 합니다.

      전 폴더를 정리 할때..

      01. 순정만화
      02. 액션만화

      이런식으로 분류를 하는데,
      여기서는 ".(dot)"가 있으면 인식을 못하는것 같습니다.

      기존에는 docker 말고 자체에서 php수정하여 진행할때는 문제가 없었던것 같든데..

      암튼 원인을 알았으니, 귀찮게 매번 바꾸는 것보다 이걸로 진행하는게 더 효율적일것 같네요^^

      감사합니다!

    • @기사를아는가
      @서주형

      두분이 같은 분이신가요?

      저도 어제 새로운 만화시리즈를 정리하다가 01. 이런식으로 했더니 안보이더라고요 아마 서버소스내에서 폴더와 파일을 구분하는 로직이 .(dot)을 기준으로 뒷부분을 확장자로 인식하고 있어서 생기는 오류인듯합니다.
      01순정만화
      02액션만화
      폴더명을 이런식으로 .(dot)을 빼고 정리하셔야지 보입니다. ^^

  11. daknichu 2017.12.07 22:44 신고

    음 저도 잘 따라온것 같은데 마지막에 ip:3125 하면 연결할수 없다고 하네요.
    공유기 포트 열어줬고 리스타트 하는데까지 똑같이 했는데...

+ Recent posts