가상 머신을 이용한 간단한 웹 서버 환경 만들기.

소개:

개인이 가성 머신을 이용한 서버 환경을 만드는 이유는 보안 보다는 관리상의 편리함 때문에 구성하게 됩니다.

사용하는 주 OS 가 리눅스 라면 chroot, FreeBSD 라면 jails 로 간단히 구성 가능하지만 윈도우 에서는 이와 비슷한 솔루션이 마땅하게 없는듯 싶어보여 윈도우 + VMplayer 의 구성으로 설치하였습니다.

가상 머신을 구성하여 게스트 OS로 리눅스 사용시 서버 구성이 매우 간편할뿐 아니라 호스트 에 따로 이것저것 설치할 필요가 적어서 매우 좋습니다.

호스트 에 xampp 같은 프로그램을 설치 해서 편하게 사용할수도 있겠지만 저는 Unix-Like 환경을 더 선호하기 때문에 이같은 환경을 구성하였습니다.

구성:

Host: Windows ( windows 8.1 )
 포트 포워딩, 작업 폴더

Guest: Linux ( ubuntu 기반 mint linux )
 웹서버, DB, 작업 폴더 공유

VMplayer 에서 호스트의 작업 폴더를 공유하여 웹 서버의 루트에 마운트 하였습니다.
공유 폴더 설정은 Player -> Manage -> Virtual Machine Settings ->  Options -> Shared Folders

mount -t vmhgfs .host:/Work /var/www/
( host 뒤에 Work 는 공유 이름 입니다. )

부팅시 자동 마운트 하기 위해서는 아래와 같이 수행하시면 되며 각자의 환경에 맞게끔 공유 폴더명과 마운트 위치를 바꾸시면 됩니다.

( 루트로 실행하셔야 합니다. )
echo '.host:/Work /var/www vmhgfs defaults,noauto 0 0' >> /etc/fstab
echo 'vmhgfs' > /etc/modules-load.d/vmhgfs.conf
perl -pi -e 's|exit 0|/bin/mount /var/www\nexit 0|g' /etc/rc.local

( 만약 vmhgfs 가 작동하지 않는다면 )
echo '.host:/Work /var/www  fuse.vmhgfs-fuse rw, allow_other,defaults,noauto 0 0' >> /etc/fstab


perl 이 없거나 시스템 설정이 달라 추가가 안된다면 /etc/rc.local 에 "/bin/mount /var/www" 를 추가하시면 됩니다 ( exit 0 바로 윗 라인에 추가하시면 됩니다. udev 룰 추가보다 이게 편합니다. )

( 원래 vmhgfs 를 사용할시 커널 모듈을 불러와야하는데 안되서 이렇게 수동으로 추가하셔야 자동으로 공유 폴더가 부팅시 마운트 됩니다. rc 에 간단하게 추가할수 있지만 시스템에 맞게끔 추가하는게 좋습니다. )

외부 접근 필요시:

관리자 모드로 cmd 를 실행후

netsh interface portproxy add v4tov4 listenport=80 connectport=80 listenaddress=0.0.0.0 connectaddress=192.168.0.2

( 보통 사용하시는 ISP 에 따라서는 80번 포트등을 막고 있을수 있어서 확인하시고 다른 포트로 listenport 를 수정하셔야 합니다, 사용하시는 방화벽도 확인하세요. 게스트 IP 에 맞게 connectaddress 를 수정하여 사용하세요. )

( listen 은 호스트, connect 는 게스트 입니다. )

포트 포워딩 구성 확인 방법
netsh interface portproxy show all

포트 포워딩을 삭제하거나 바꾸실때 delete 명령으로 하시면 상당히 불편하니 리셋 명령어로 하시는게 간편합니다.

netsh interface portproxy reset

나머지 사용법에 대해서는 netsh interface portproxy 를 입력하시면 사용법이 나옵니다.

Comments