Overview

애플(Apple) 제품을 한 번도 써본 적이 없습니다. 3주 전, 입사하고 받은 맥북(MacBook Pro)이 첫 애플 제품이었죠. 사실 개발 업무를 하면서 ‘한 번쯤은 애플 제품을 써 봐야겠다’는 생각을 하고 있었습니다. 단지 쉽사리 용기가 나지 않았을 뿐이었죠. 하지만 여러 개발 환경이 존재하는데도 개발자가 한 가지 환경만 고집하는 건 스스로의 잠재 능력을 좁히는 거라 생각했습니다. 그래서 이번 기회에 새로운 환경과 친해지려고 APM 웹서버 구성에 도전해봤습니다. (아자!)


OS 설치 완료 후 환경

  • Sierra 10.13
  • apache 2.4
  • php 5.6
  • mysql 5.6


APM 설치 과정

MAC 환경에서 APM 설치하려면 MAMP 방법도 있지만 기본적으로 apache, php가 설치되어 있으므로 패키지관리자 Homebrew를 이용하여 설치하겠습니다.

1.apache 설치 버전 확인
$ httpd -v 명령어를 실행해서 아래와 같이 버전이 나오면 설치가 되어있는 상태입니다.

$ httpd -v
Server version: Apache/2.4.27 (Unix)
Server built:   Jul 15 2017 15:41:46



2.php 설치 버전 확인
php -v 명령어를 실행해 아래와 같은 버전이 나오면 설치가 된 것입니다.

$ php -v
PHP 5.6.32 (cli) (built: Oct 27 2017 11:55:27)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies


참고: MAC Sierra 10.13 버전에는 php7 상위 버전으로 설치되어 있습니다. Homebrew로 php5.6 하위 버전을 추가적으로 설치해야 합니다.

3.Homebrew 설치
Homebrew 명령어
1)패키지 검색하기 -> $ brew search 패키지명
2)패키지 설치하기 -> $ brew install 패키지명
3)패키지 삭제하기 -> $ brew uninstall 패키지명
4)설치된 패키지 목록확인 -> $ brew list
5)패키지 정보보기 -> $ brew info 패키지명
6)패키지 업그레이드 하기 -> $ brew upgrade 패키지명
7)패키지 저장소 추가하기 -> $ brew tap homebrew/패키지명
8)패키지 저장소 삭제하기 -> $ brew untap homebrew/패키지명
9)패키지 링크 삭제하기 -> $ brew unlink 패키지명

가.설치파일 다운
$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

나. Homebrew wget 설치
(Apple에서 제공하지 않는 패키지를 설치하기 위한 것이다.)
$ brew install wget

다. 심볼릭 링크 연결
$ ls -l /usr/local/bin/wget ../Cellar/wget/1.19.2_1/bin/wget
bin/wget -> ../Cellar/wget/1.19.2_1/bin/wget

라. 패키지 저장소 추가
$ brew tap homebrew/dupes
$ brew tap homebrew/php
$ brew update

4.php56 설치
가. Homebrew php56 설치
$ brew install php56 –with-apache

나. Apache에 PHP 설정 수정하기
아파치에 php7 모듈이 연결되어 있어 주석 처리 후 설치한 php5 경로로 연결한다.
$ vi /etc/apache2/httpd.conf

LoadModule php5_module /usr/local/php5-5.6.31-20170817-164511/libphp5.so
#LoadModule php7_module libexec/apache2/libphp7.so


다. apache 재시작
apachectl restart

라. phpinfo 확인

phpinfo 확인
phpinfo 확인



5.mysql56 설치
가. Homebrew mysql56 설치
$ brew install mysql56

나. mysql 시작
$ /usr/local/Cellar/mysql@5.6/5.6.38/bin/mysql.server start

다. mysql 버전확인
$ /usr/local/Cellar/mysql@5.6/5.6.38/bin/mysql –version
명령어를 실행해서 아래와 같이 버전이 나오면 설치가 되어있는 상태입니다.

$ sudo /usr/local/Cellar/mysql\@5.6/5.6.38/bin/mysql --version
/usr/local/Cellar/mysql@5.6/5.6.38/bin/mysql  Ver 14.14 Distrib 5.6.38, for osx10.13 (x86_64) using  EditLine wrapper



6.가상호스트 설정
로컬에 다수의 프로젝트를 세팅하기 위한 것이다.
가. httpd.conf 파일 수정

  • Include /private/etc/apache2/extra/httpd-vhosts.conf <- 주석제거
    $ vi /etc/apache2/httpd.conf
 # Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

나. httpd-vhosts.conf 파일 수정

  • NameVirtualHost : 아파치 2.4 이전 버전일 경우 80 포트에서 이름 기반 가상 호스트를 사용하겠다는 의미로 반드시 적어줘야 한다.
  • DocumentRoot : 해당 프로젝트 소스 경로
  • ServerName : 해당 프로젝트 접속 도메인주소

$ vi /etc/apache2/extra/httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/Users/comkjs/Sites/ex1"
    ServerName ex1.brandi.co.kr
    ErrorLog "/private/var/log/apache2/error_log"
    CustomLog "/private/var/log/apache2/access_log" common

    <Directory "/Users/comkjs/Sites/ex1">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/comkjs/Sites/ex2"
    ServerName ex2.brandi.co.kr
    ErrorLog "/private/var/log/apache2/error_log"
    CustomLog "/private/var/log/apache2/access_log" common

    <Directory "/Users/comkjs/Sites/ex2">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>



7. hosts 설정
해당 도메인으로 접속시 DNS 서버를 사용하기 이전 로컬에 지정된 IP로 맵핑된다.
$ vi /etc/hosts

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

127.0.0.1       ex1.brandi.co.kr
127.0.0.1       ex2.brandi.co.kr



Conclusion

물론 오랫동안 맥북을 사용했던 개발자에겐 쉬운 내용일 수 있지만 MS와 리눅스에 익숙했던 저에겐 ‘두려움’이었습니다. 리눅스 구조와 명령어가 비슷해서 리눅스를 이용했던 이용자에겐 어렵지 않을 것입니다. 한 번 세팅해두면 환경이 바뀌지 않는 이상 잘 건드리지 않기 때문에 나중에 세팅을 바꾸는 일이 있으면 또 다시 볼 수 있도록 기술 블로그에 남겨둡니다. 분명 언젠가는 도움이 되지 않을까요.



곽정섭 | 커머스 개발팀
kwakjs@brandi.co.kr
브랜디, 오직 예쁜 옷만