맥 내부에 apache/nginx 개발서버 세팅하기

HYEONG HWAN, MUN/ 12월 19, 2016/ 미분류/ 5 comments

 

지인 요청으로 글을 작성합니다.
본문의 설명은 Mac OS X 기준으로 작성하였지만 Windows OS 환경에서도 적용할 수 있습니다.

 

개발하는데 맥을 사용하면 매우 편리합니다.
대부분의 서버는 리눅스로 구동되며, 맥 또한 리눅스 기반이기 때문에 명령어도 유사하고, 서버 작업 관련 호환성 또한 매우 좋습니다.

이 글에서는 일반사업체/개발회사/에이전시/팀프로젝트 에서 적용할 수 있는 “맥 내부에 apache/nginx 개발서버 세팅하는 방법”에 대해서 설명하도록 하겠습니다.

 

1. 대부분의 실무에서 사용하는 작업 방식

실제 운영하는 서버 (라이브서버) 한대를 두고 직접 그곳에서 작업한다. (mysite.com 을 바로바로 작업)

작업 중에는 서버 오류가 발생할 수 있으며, 고객이 이용중 장애를 겪을 수 있다.

 

2. 더 나은 실무 작업방식

서버는 같은데 분리된 도메인의 (dev.mysite.com) 사이트를 만들고 복제된 사이트에서 개발&테스트 한 후 실제 사이트에 반영하는 방법.

실제 작업 서버에 도메인만 분리후 작업한다. 공유 리소스가 있을 경우 이것의 장애로 인해 실 서비스에 장애가 일어날 수도 있다.

 

3. 개발 서버를 따로 두는 작업방식

 

4. 각 작업자에게 로컬 서버를 세팅하고, 개발서버로 통합하는 방식

좀더 나아가서.

 

가상화 소프트웨어 설치.

가상화에 대해서는 설명하기엔 글이 길어질것 같아서 자세한 설명은 생략합니다.

몇가지 선택지가 있는데, vmware, virtualbox, xen, linux kvm 이 있는데 어느것을 선택해도 됩니다.

서로는 미미한 성능차이가 있으며, “로컬 개발서버” 목적에 모두 적합합니다.

이 글에서는 Virtualbox 를 선택할 것입니다.

 

 

자동 가상화 소프트웨어 설치

가상화 소프트웨어를 제어해서 자동으로 실행하도록 도와주는 “자동 가상화 소프트웨어”라는 것이 있습니다.

이 글에서는 vagrant 를 사용할 것입니다.

 

개발 환경 스택

여러 프로그램 꾸러미 세트를 스택(stack) 이라고 부릅니다.

개발 환경 스택은 웹서버(Apache /Nginx), 어플리케이션서버(PHP/Ruby/Python/NodeJS/HHVM), 데이터베이스서버(MariaDB/MySQL/PostgreSQL/MongoDB/Redis/SQLite) 로 구성됩니다.

이 글에서는 자동가상화소프트웨어 설치용 스크립트 PuPHPet 를 사용하겠습니다.

 

협업 소프트웨어

다수의 사람이 문제없이 동시수정을 할 수 있도록 관리하는 협업 소프트웨어를 사용할 것입니다.

1인 이상, 즉 모든 프로젝트에서 사용하기를 권장합니다.

저는 저 혼자 개발하는 개인 프로젝트에서도 이것을 사용합니다.

이 글에서는 GIT 환경 소프트웨어인 GITLAB 을 사용할 것입니다.

 


 

이제 협업하여 구축하는 방식을 설명하겠습니다.

 

일반적으로 프로젝트에서 이러한 환경 구축에 소모되는 기간은 1~2주일 입니다.

본인의 팀이 프로라고 1일만에 환경 구축할 수 있더라도 반드시 기간은 최소 일주일로 잡으세요. 빠른 구축 후 시간이 남는다면 놀아도 됩니다.

 

1. 프로젝트 이름 정하기

모든 것의 시작은 “이름 정하기 입니다”

이 예제에서는 “wp-project-1” 을 사용할 것입니다.

도큐먼트(/home/lael/Documents) 에 vproject 폴더와 그 안에 wp-project-1 및 test1 폴더를 생성합니다.

 

2. vagrant 설치

vagrant 는 가상화 소프트웨어를 제어하는 명령어툴(command line tool) 입니다.

https://www.vagrantup.com/downloads.html 에서 설치파일을 다운받아 설치합니다.

 

 

3. Virtual Box

Virtual Box 는 독립적인 가상 PC 환경을 구축해 주는 소프트웨어 입니다.

https://www.virtualbox.org/wiki/Downloads

 

4. 개발스택 정하기

https://puphpet.com/ 으로 이동 후 본인에 맞는 환경을 선택한다.

화면 중앙의 Get started right away. 를 클릭하자.

 

>> System Packages : 넘어가기 (skip)

>> Users & Groups : 넘어가기 (skip)

>> Firewall : 넘어가기 (skip)

>> Cron Jobs : 넘어가기 (skip)

>> Custom Files : 넘어가기 (skip)

Remove Block 을 클릭하여 제거합니다.

>> Install Apache : 넘어가기 (skip)

>> Let’s Encrypt : 넘어가기 (skip)

>> Install PHP : date.timezone 값만 변경합니다. 원한다면 일부 값을 수정해도 됩니다.

>> Ruby : 넘어가기 (skip) - Ruby 2.3.1 이 설치됩니다.

>> Python : 넘어가기 (skip) - Python 2.7 이 설치됩니다.

>> Install Node.js : 넘어가기 (skip)

>> Install HHVM : 넘어가기 (skip)

>> Install MariaDB

기본 예제값 모두 없에고 root 비밀번호를 1234 로 설정합니다.

>> Install MySQL : 넘어가기 (skip)

>> Install PostgreSQL : 넘어가기 (skip)

>> Install MongoDB : 넘어가기 (skip)

>> Install Redis : 넘어가기 (skip)

>> Install SQLite : 넘어가기 (skip)

>> Install MailHog : 넘어가기 (skip)

>> Install Beanstalkd : 넘어가기 (skip)

>> Install RabbitMQ : 넘어가기 (skip)

>> Install Elastic Search : 넘어가기 (skip)

>> Install Solr : 넘어가기 (skip)

 

다운로드해 주세요.

 

vagrant 파일을 다운받은 후 압축 푼 다음 콘솔을 열어서 해당폴더로 이동해주세요.

명령어

# vagrant up

 

OS 설치부터 개발환경 세팅까지 한번에 끝납니다. NFS 설정을 위해 비밀번호를 한번 물어봅니다.

호스트PC의 html 폴더와 웹서버의 document root 가 연결됩니다.

index.html 파일을 작업하면 즉시 개발 서버에 반영됩니다.

 

--

vagrant 명령어

vagrant up : 개발환경 켜기, 가상머신이 없다면 새로 생성함.

vagrant halt : 개발환경 끄기

vagrant ssh : 로컬서버로 쉘접속

vagrant destroy : 개발환경 제거(삭제)

 


 

그 다음에는 이 글을 통해 외부(또는 내부) GIT 서버를 구축하도록 하자.

나만의 GIT 서버를 구축하고 프로젝트에 적용하는 방법 (gitlab ssl)

 

 

미완성이며 글 설명 목차는 다음과 같다. (글을 몇번 더 다듬을 예정)

vagrant 의 html 폴더에 git 설정을 할것이다.

이것을 통해 동일한 환경의 웹서버가 동일한 코드로 돌아가게 된다.

나만의 작업을 할 수 있고, 완료가 되었다면 선택하여 커밋하면, 다른 사람의 웹환경에 적용이 된다.

실제 서비스에 영향을 주지 않고 작업자끼리 서로 다른 작업이 가능하다.

 

변경이 승인된 것에 한해서 서비스 서버에 패치가 가능하다.

 

 

끝.

 

5 Comments

  1. 일등이네요^^
    맥유저인 저로썸 상당한 희소식입니다
    정말 감사합니다

  2. 저는 맥북에서 nginx 올려서 직접 개발하고 테스트 한다음에, 안쓰는 노트북으로 만든 리눅스 서버로 만들어서 하고있어요..
    소스 관리는 bitbucket 쓰고있구요.

    이렇게 하는 방법도 있군요.. 잘 알고 갑니다.

    1. 안녕하세요. 아직 초고 작성 후 수정중입니다.
      서둘러 완성하도록 하겠습니다.
      본문의 내용이 가장 단순하고 문제 발생의 여지가 없는, 표준의 방법이라고 생각합니다.

      1. 확실히 맥이랑 우분투랑 설정이 좀 다르더라구요
        좋은 방법 알려주셔서 감사합니다

Leave a Comment

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*