리눅스용 윈도우 하위 시스템(WSL) Ubuntu 앱으로 로컬 웹서버

MS가 Windows System for Linux(WSL. 리눅스용 윈도우 하위 시스템)를 발표하면서 윈도우에 리눅스를 품었고, 몇 번의 관련 윈도우 패치를 거치면서 Microsoft Store에 Ubutu 앱을 배포하였죠.

저는 윈도우 노트북을 사용하고 있고, Wamp 또는Xampp 로 로컬 웹서버(apache2, php, mysql)를 구성하고, ssh 접속은 Putty와 Pageant를 이용하였습니다.  이번에 WSL을 적용하고 Ubuntu 앱을 설치한 후에 apache2, php7.0 MaiaDB를 설치하여 윈도우 노트북에 로컬 웹서버를 구성하여 사용해 보았습니다.

  • 편리한 ssh 콘솔 접속
  • 리눅스 기반의 실제 서버와 똑같은 로컬 작업 환경

간단한 후기 겸 팁 몇가지 남깁니다.

 

윈도우 탐색기에서 리눅스가 설치된 폴더로 접근할 수 없습니다.

윈도우 하위시스템 리눅스(이하 WSL) 즉, Ubuntu 앱에서 윈도우 폴더에 접근할 수 있지만, 윈도우 탐색기에서 리눅스 폴더는 접근할 수 없습니다. cd /mnt/c 로 C 드라이브의 폴더에 접근 및 파일의 복사,이동,삭제… 등등 모든 리눅스 명령어가 가능합니다. rm -fr 명령어는 매우 조심해야겠죠?

 

 

Apache2 문서 루트 경로

웹서버로 apache를 설치했다면 문서 루트는 일반적으로 /var/www 입니다. 그런데 윈도우에서 리눅스 폴더인 /var/www는 접근할 수 없기 때문에 아파치 문서 루트를 지정하고자 할 때는 심볼릭 링크로 해결합니다.

아래는 아파치 설정에서 문서 루트를 /var/www/html/projects 로 설정하고, 실제 그 폴더 위치는 내 컴퓨터의 C:/projects 인 경우입니다. 전 로그 파일 위치까지 같은 곳으로 설정했습니다.

 

ln -s /mnt/c/projects /var/www/html/projects

 

 

이제 C:/projects에서 로컬 파일 작업하면 됩니다. Git 저장소 위치도 당연히 동일하겠죠.

테스트겸 <?php phpinfo(); ?> 파일을 작성해 호출해 보았습니다. 리눅스에서 파일 위치는 /var/www/html/projects/index.php 이지만, 내 컴퓨터에서 실제 위치는 C:/projects/index.php 입니다.

 

 

Ubuntu 앱 실행시 apache와 mysql 실행 스크립트

현재 WSL은 자동 실행이 지원되지 않는다고 합니다. 이후 패치한다는… 따라서 윈도우에서 Ubuntu 앱을 실행할때 apache와 mysql을 자동으로 실행해야 할 경우는 아래 스크립트를 참고하시길.

 

#!/bin/sh
#run apache
echo 'Starting Apache'
echo | sudo -S apachectl start > /dev/null && echo 'Apache Started'
echo 'starting Mysql'
echo | sudo -S service mysql start > /dev/null && echo 'Mysql Started'

$SHELL

 

이상. 이후 패치되거나 사용 후기가 더 생기면 추가하겠습니다.

————————————————————————-

아래 내용은 WSL 설치와 관련된 내용이며 이미 많은 포스트가 있으니 구글링이 도움이 되겠고, MS의 공식 페이지 Windows Subsystem for Linux Documentation 로 대신합니다. 중요 사항 체크를 위해 스샷 몇 장만 남깁니다.

윈도우 10의 Microsoft Store에 정식 등록된 Ubuntu, openSUSE, Fedora 중에서 Ubuntu를 설치합니다. 저의 경우 대부분 서버를 AWS에서 Ubuntu 14 및 16, Amazon Linux로 구성하였기에 실제 서버와 로컬 개발 환경을 동일하게 구성하고자 하는 목적입니다.

 

 

 

  • Ubuntu 앱은 2017년 10월을 기준으로 Windows 10 버전 16215.0 이상의 64비트 윈도우에만 설치 가능합니다.
  • Windows 기능에서 Linux용 Windows 하위 시스템(WSL)을 체크합니다.

 

 

베타 버전때와는 달리 Microsoft Store에서 Ubuntu 앱을 선택해서 다운 설치하면 됩니다. 재부팅을 거치고 ubuntu 앱을 실행하면 이제 윈도우 10 속의 리눅스를 사용할 수 있습니다.

저는 Ubuntu16에 apache2, maria-db, php7로 로컬 웹서버를 위한 구성을 하고 phpmyadmin까지 설치하였습니다. 개발 환경은 각자의 선택이겠죠.

 

apt-get update

apt-get upgrade

apt-get install apache2

apt-get install php

apt-get install libapache2-mod-php7.0 php-mcrypt php-mbstring php-gd php-crul php-xml

apt-get install mariadb-server

apt-get php-mysql

apt-get phpmyadmin

 

 

Posted in Uncategorized

Leave a Reply