How to Set Up a Simple Web Server Environment with a Virtual Machine

Languages: [EN] English | [KO] 한국어

How to Set Up a Simple Web Server Environment with a Virtual Machine
가상 머신을 이용한 간단한 웹 서버 환경 만들기

Overview 소개

Although this article predates the release of WSL, the methods described are still useful. The reason for setting up a server environment using a virtual machine on a personal PC is the convenience it offers in terms of management. If the OS is Linux, it can be easily configured using chroot, and for FreeBSD, jails is an option. In this case, the setup was done with the configuration: Host (Windows) + Guest (Linux) + VMware.

* 현재 글은 WSL이 나오기 이전의 글이지만 아직도 유용한 방법 *
개인 PC에서 가성 머신을 이용한 서버 환경을 만드는 이유는 관리상의 편리함 입니다.
OS 가 리눅스면 chroot, FreeBSD 면 jails 로 쉽게 설정 가능 하지만
Host:윈도우 + Guest(Linux) + VMware 의 구성으로 설치하였습니다.

Configuration 구성

VMware: Sharing the host's working folder and mounting it to the web server's root
  • Sharing the host's working folder and mounting it to the web server's root
Host: Windows
  • Port forwarding
  • Working folder
Guest: Linux
  • Web server
  • Database
  • Shared working folder
VMware: 호스트의 작업 폴더를 공유하여 웹 서버의 루트에 마운트
  • 호스트의 작업 폴더를 공유하여 웹 서버의 루트에 마운트
Host: 윈도우
  • 포트 포워딩
  • 작업 폴더
Guest: 리눅스
  • 웹 서버
  • 데이터베이스
  • 작업 폴더 공유

Set up - Virtual Machine(VMware) 설정 - 가상머신(VMware)

  • To configure a shared folder: VM -> Settings -> Options -> Shared Folders
  • 공유 폴더 설정은 VM -> Setting -> Options -> Shared Folders

Set up - Host (Windows) 설정 - Host (Windows)

For external connections:
  • netsh interface portproxy add v4tov4 listenport=80 connectport=80 listenaddress=0.0.0.0 connectaddress=192.168.0.2
  • listen refers to the Host, and connect refers to the Guest
  • Guest OS IP: connectaddress
  • Host OS port: listenport
  • Ensure that port 80 is open before specifying the port (listenport). It is essential to check your router and firewall settings.
외부 연결 필요시
  • netsh interface portproxy add v4tov4 listenport=80 connectport=80 listenaddress=0.0.0.0 connectaddress=192.168.0.2
  • listen 은 Host, connect 는 Guest
  • Guest OS IP: connectaddress
  • HOST OS 포트: listenport
  • 80번 포트가 열려 있는지 확인 후 포트 지정(listenport) 을 해야 합니다, 사용하는 공유기, 방화벽 확인 필수
How to check port forwarding configuration:
  • Command to check: netsh interface portproxy show all
  • Reset configuration: netsh interface portproxy reset
  • Usage guide: netsh interface portproxy
포트 포워딩 구성 확인 방법
  • netsh interface portproxy show all 확인 명령어
  • netsh interface portproxy reset 설정 초기화
  • netsh interface portproxy 사용법 안내

Set up - Guest (Linux) 설정 - Guest (Linux)

  • mount -t vmhgfs .host:/Work /var/www/
  • "Work" is the name shared by the virtual machine.
How to apply automatic settings at boot:
  • 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
  • If perl is not installed or system settings prevent modification, manually add /bin/mount /var/www to /etc/rc.local. Add it right above exit 0. This method is more convenient than adding a udev rule.
If vmhgfs does not work:
  • echo '.host:/Work /var/www fuse.vmhgfs-fuse rw,allow_other,defaults,noauto 0 0' >> /etc/fstab
  • mount -t vmhgfs .host:/Work /var/www/
  • "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
  • perl 이 없거나 시스템 설정이 달라 추가가 안된다면 /etc/rc.local 에 "/bin/mount /var/www" 를 추가하시면 됩니다, exit 0 바로 윗 라인에 추가하시면 됩니다. udev 룰 추가보다 이게 편합니다.
vmhgfs 작동 불가 시
  • echo '.host:/Work /var/www fuse.vmhgfs-fuse rw, allow_other,defaults,noauto 0 0' >> /etc/fstab

Comments