1. 홈서버 시스템의 선택
2. 네트워크 구성과 공유기 설정
3. MacOSX 인스톨
4. 웹서버를 시동해 보자 - MAMP ( MacOSX Apach + MySQL + PHP )
5. FTP를 이용한 파일서버 - LukeFTPd / PureFTPd
6. SSH를 이용한 원격 관리와 터널링
7. GUI 원격관리 VNC
8. Transmission을 이용한 Torrent 공유 ( + FTP 응용 )
9. Windows에서 네트워크 드라이브로 연결해 보자
10. VMware + WindowsXP ( for ActiveX Webhards )


4. 웹서버를 시동해 보자 - MAMP ( MacOSX Apach + MySQL + PHP )

서버버전이 아닌 일반 MacOSX 자체로도 Apache와 MySQL을 내장하고 있습니다. 하지만 이게 관리하기에 좀 불편한 부분도 있는데다가 OS와 연계되어 있다보니 섣불리 손대기가 망설여지는게 사실입니다. 거기다가 기본으로 들어가 있는 데몬의 버전도 낮으니 영 찜찜하죠.
그래서 본 가이드에서는 어플리케이션 설치 수준으로 쉽게 사용할 수 있는 MAMP를 소개하고자 합니다.
MAMP는 제목에 있는데로 MacOSX를 위한 Apache+MySQL+PHP 통합 패키지입니다. MAMP의 장점은 OS와 완전히 별도로 동작을 한다는 점 입니다. 제거도 간단해서 MAMP를 그냥 삭제하는 것만으로도 완벽한 Uninstall이 가능합니다. 즉, 모든 설정 파일과 DB가 /Applications/MAMP 아래에 존재합니다. 관리상 굉장히 편하죠.

http://www.mamp.info/

이곳을 방문해 보면 MAMP Pro와 MAMP 두 가지 다운로드를 볼 수 있습니다. Pro 버전은 상용임으로 구매를 해야 이용할 수 있습니다. (11월13일 기준 -  KRW 71,098 / USD 54.41 ) 저는 MAMP를 사용하고 있습니다. 여유가 있다면 Pro를 사용하는 것도 좋겠지만 사실상 두 버전의 서버 기능상의 차이는 없습니다. 다만 조금 더 유저 친화적인 GUI 환경을 제공한다는 점이 다릅니다.
즉, 조금만 귀찮음을 감수한다면 MAMP 만으로도 아무런 문제가 없습니다. 더더군다나 일단 한번 세팅한 이후에는 별달리 손을 대야할 이유도 없으니까요.

자 일단 다운로드를 받습니다. MAMP와 MAMP Pro가 한데 묶여 있는데 두 패키지가 하나의 dmg 파일에 담겨 있음으로 다운로드 받습니다. (11월13일 기준 1.7.2가 최신)

다운로드가 완료되면 설치합니다. 그림에서 MAMP를 드래그해서 Applications에 넣으면 됩니다. ( 사실상 복사의 의미입니다. ) 대략 전체 파일크기가 350MB 정도 되니 잠시 기다리시면 됩니다.

복사가 끝나면 설치가 완료된 것이니 Applications를 더블클릭 해 봅니다. MAMP 생긴것이 보입니다.

들어가보면 이런저런 것들이 보이는데 실행하기 위해서는 MAMP라고 되어 있는 것을 더블클릭합니다.

자, 그럼 경고가 뜹니다. 인터넷에서 받은 파일인데 정말 실행할꺼냐고 묻습니다. 문제가 되는 파일이 아님으로 Open을 클릭해 줍니다.

자 그럼 MAMP 창이 뜨면서 자동으로 기본으로 설정해 둔 웹브라우져가 기동되면서 서버의 페이지가 열립니다.

일단 MAMP 창을 보면 Apache Server/MySQL Server 옆에 두개의 원이 보일껍니다. 붉은 색은 정지상태, 초록색은 동작중을 표시합니다. 처음 기동하면 자동으로 초록색으로 둘 모두 이동이 될것입니다. 즉 동작이 시작됩니다.
서버는 MAMP의 기본값대로 동작을 시작한 것임으로 원하는대로 서버를 설정을 해야합니다. 일단 간단한 것은 MAMP 창에서 Preferences에서 설정이 가능합니다. 열어봅시다.

간단한 영어임으로 각 항목에 대한 해설은 생략하고 첫번째 체크만을 남겨두고 2,3,4번째 체크는 해제합니다.

다음 항목으로 넘어가봅시다. Ports를 보면 Apache와 MySQL이 사용할 포트를 설정하는 부분이 있습니다. 기본으로는 각각 8888과 8889로 설정이 되어 있습니다.

자 여기서 깊이 들어가면 많은 설명이 필요한데 간단하게 정리하면 원래는 Apache는 80 포트를 사용해야 한다로 정리할 수 있습니다.
즉, 일반적으로 웹 브라우져에서 도메인을 입력했을 때 당연히 80포트라는 것을 가정하고 접근을 하게 됩니다. 일종의 약속이라고 생각하시면 됩니다. 그런데 상당수의 인터넷 서비스 업체들이 자신들의 이익을 위해서 80포트의 사용을 막아놓고 있습니다. 80포트가 열려있는지는 사용하시는 회선에 달려있습니다. 만약 내부 내트워크에서만 사용을 한다면 이런 포트의 제약은 아무 상관이 없지만 외부에서는 포트가 막혀있는 경우 트릭이 필요합니다.

우선은 포트가 이렇게 설정되어 있다는 것을 확인하고 넘어갑니다.

PHP 설정은 일단 기본으로 두고 넘어갑니다. 기본적으로 PHP5를 사용하게 되어 있으며 Zend Optimizer를 사용하도록 되어 있습니다. Cache는 사용하지 않도록 되어 있지요.

Apache 설정은 심플합니다. http로 접근할 때 root를 어디에 둘 것인지를 설정합니다. 기본적으로 /Applications/MAMP/htdocs 로 설정이 되어 있습니다.

자 기본적인 세팅값들은 이렇게 되어 있습니다.

그럼 아까 열려진 웹브라우져 창으로 돌아가 봅시다.

일단 주소를 유심히 보세요. 이렇게 되어 있습니다.
"http://localhost:8888/MAMP/?language=English"

localhost라는 것은 자기 자신을 이야기 하는 것이고 뒤에 :8888은 8888번 포트로 접근을 하도록 하는 것입니다. MAMP는 경로를 말하는 것이고 ?language=English는 language라는 변수에 English를 넣으라는 이야기입니다. 뭐 복잡한건 빼고 일단 :8888이 앞에서 이야기한 포트라는 것을 기억해 두시면 됩니다.

그럼 내용을 보면 어쩌고 저쩌고 말이 많습니다. 이제 최우선적으로 해야하는 일이 있는데 MySQL의 root 암호를 변경하는 일입니다. 기본적으로 root로 설정이 되어 있음으로 아무나 접속을 할 수 있음으로 보안을 위해 바로 바꾸는 것이 좋습니다.

phpMyAdmin을 클릭해 봅니다.

그럼 다음과 같은 화면이 출력됩니다.

왼쪽에 있는 mysql을 클릭합니다. 그럼 다음의 화면이 나옵니다.

User의 browse를 클릭합니다. 그럼 다음의 화면이 나옵니다.

root가 이미 설정이 되어 있는 것이 보입니다. 그럼 root의 암호를 수정하기 위해서 Edit를 클릭합니다. 그럼 다음 화면이 나옵니다.

Password라고 되어 있는 부분이 함호를 저장하고 있는 부분입니다. 물론 암호는 그 자체로 암호화되어 저장되기 때문에 알 수 없는 값으로 채워져 있습니다. 암호를 설정하기 위해서는 다음과 같이 Password의 Function 부분을 PASSWORD로 바꾸고 Value에 원하는 암호를 입력합니다.

자 그대로 했으면 밑으로 내려서 Go를 클릭합니다.

그럼 업데이트가 완료되었다고 어쩌고 저쩌고 나옵니다.

밑으로 내려보면 root의 password 값이 바뀐 것을 확인할 수 있습니다. 물론 입력한 새로운 암호도 암호화되었기에 알 수 없는 값으로 채워져 있습니다.

이제 MySQL의 root 암호가 변경이 되었습니다.

그럼 원래대로 돌아가서 상단의 phpMyAdmin을 클릭해서 phpMyAdmin 홈으로 돌아갑니다.

자 이곳에서 reload privilage를 클릭해 봅니다. 그럼 다음과 같은 에러 메세지가 출력됩니다.

Access denied for user 어쩌고 저쩌고.. 맞습니다. 암호를 바꿨기 때문에 접속이 안되는 것입니다. 자 그럼 수정한 암호를 인식시켜 봅시다.
파인더를 열어서 /Applications/MAMP/bin/phpMyAdmin 으로 이동을 합니다. 그리고 config.inc.php 파일을 더블클릭합니다.
대충 84번째 라인을 보면 다음 그림과 같이 되어 있을 것입니다.

다음과 같이 설정한 암호를 넣어 줍니다.

텍스트 에디터를 저장하고 종료합니다.

그럼 이제 접속이 제대로 되는지 확인을 해 봅시다. 웹브라우져로 돌아가서 phpMyAdmin을 클릭해 봅시다. 정상적을 화면이 표시될 껍니다.


이제 최소한의 준비는 끝났습니다. apache도 동작을 하고 있고 최소한의 보안조취도 끝냈으니 웹페이지가 제대로 뜨는지 확인을 해 봐야겠지요. 웹브라우져에 주소를 넣어봅시다. "http://localhost:8888" 그럼 다음과 같은 화면이 뜹니다.

음.. 이게 대체 뭘까요. 아직 아무런 파일도 없기에 심지어는 첫 화면에 보여줄 내용도 없기에 apache의 기본 세팅대로 http root의 내용을 표시하고 있는 것입니다. 텅~ 비어있지요. 그럼 뭐라도 하나 넣어 봅시다. 파인더로 "/Applications/MAMP/htdocs"로 이동합니다. 그냥 새로운 폴더를 만들어 봅시다.

그리고 웹브라우져로 돌아와서 새로고침을 해 보면 다음과 같은 화면이 보입니다.

새로운 폴더가 보이시죠? 그런데 홈페이지가 무슨 파일 탐색기도 아니고... 그래서 하다못해 Hello World라도 찍어봅시다.

터미널을 열어봅시다. 그리고 /Applications/MAMP/htdocs 로 이동을 합니다.

"nano index.html"을 타이핑 합니다.

그럼 다음과 같은 화면이 뜨는데 "Hello World"라고 입력을 하고 Ctrl+x, y, enter를 누릅니다.
ls를 해 보면 index.html이 생성된 것을 확인할 수 있습니다.

웹브라우져로 확인을 해 봅시다. 웹브라우져로 돌아가서 새로고침을 눌러봅니다.

최소한의 MAMP의 설명은 여기까지 입니다. 사실 서점에 가보면 apache 하나만을 설명한 책이 여럿있을 정도로 방대한 내용을 본 가이드에서 설명하는 것은 무리라고 생각이 됩니다. 자세한 기능과 사용은 apache 홈페이지나 책을 참고하세요.

자 이제 웹브라우져는 돌아가는데 localhost라는 주소는 웹서버가 구동되는 컴퓨터에서나 먹히는 것이니 이제 IP로 접근을 해봐야 겠지요. 일단 자신의 IP를 확인해 봅시다. 터미널을 열고 ifconfig를 타이핑해 봅시다.

뭐 씨부렁 씨부렁 말이 많은데 다 때려치고 en0를 찾습니다. 찾았다면 그 하위 항목중에 inet을 찾습니다. 위 그림에서는 192.168.0.33으로 되어 있네요. 이것이 현재 서버의 IP입니다.

그럼 웹브라우져에 주소를 쳐 봅시다. "http://192.168.0.33:8888"

자 이제 localhost가 아니어도 접근이 가능하죠. 그런데 192.168.xxx.xxx라는 주소는 공유기에서 할당해준 사설IP입니다. 공유기를 벗어나는 네트워크에서는 이런 IP는 사용할 수 없습니다. 그럼 이제 전에 살펴본 공유기 설정을 참고해서 공인IP를 확인해 봅시다. 공유기 설정이 제대로 되었다면 그리고 8888번 포트가 인터넷서비스 업체에 의해서 막히지 않았다면 "http://[공인IP]:8888"로 접근이 가능할 것입니다.


[TODO]
- 간단한 php 사용
- phpMyAdmin의 원격지 로그인 (인증방법 config -> http)
- 최소한의 httpd.conf 설명
- 원하는 경로에 보안처리 (ID/PASSWORD 인증, .htpasswd)
- alias, user dir, ...

사용자 로그인