광고 차단 플러그인 해제 후 새로고침(F5) 하시면
컨텐츠를 정상적으로 볼 수 있습니다.
(Please turn off AdBlock Plug-in.)

IIS를 통해 윈도우PC를 웹서버로 만들 수도 있지만, 리눅스로 전환하더라도 이질감 없이 웹서버를 구축하기 위해서는 APM(Apache+PHP+MySQL 줄임말) 같은 범용 웹서버 구축법에 대한 개념을 익혀가는 게 좋다고 생각합니다. Bitnami 처럼 한방팩으로 웹서버를 구축하는 방법도 좋긴 한데, 아파치/PHP/MySQL 등을 개별적으로 버전관리/유지보수 하기에는 한방팩이 오히려 불편합니다. 알 수 없는 꼬임과 오류도 잦고요.


윈도우에 APM을 설치하면 용도가 다양합니다. 실제 웹서버로 굴려도 되고, 웹페이지 구축/테스트 용으로 써도 되고...

대부분 윈도우에서 홈페이지를 열람하기 때문에 윈도우 내장폰트에 의존하는 웹페이지들의 텍스트 서식을 보려면 결국 윈도우를 써야 하니까... 아무래도 윈도우에 APM 구축해놓는 게 좋긴 하죠.


APM+phpMyAdmin 전부 최신버전 기준으로 워드프레스 설치 직전 상황까지 세팅하는 과정을 시리즈로 적겠습니다. 가상머신에 윈도우10 설치하고 닷넷3.5만 활성화시키고 스샷 찍어가면서 테스트+포스팅하는거라, 다른 프로그램들이 깔려서 과정이 꼬이고 하는 일은 없을겁니다.



1. Apache 2.4 설치


아파치는 PC를 웹서버로 돌려주는 프로그램입니다. X86 하드웨어에 이런 류의 프로그램을 깔면 그게 바로 서버예요(대신 24시간 돌려야 되니까 저전력+신뢰도 높은 부품이 필요하겠죠). 웹서버 구동 프로그램은 아파치 외에도 Nginx(엔진엑스), IIS 등이 많이 쓰이는데, 엔진엑스는 아파치보다 민첩하지만 트러블슈팅 관련 팁이 아파치보다 적게 누적된 편이에요(게다가 대부분 영문서임).


아무튼

https://www.apachelounge.com/download/

위 링크에서 아파치 아파치 최신버전을 받습니다.

저는 VC14 64비트 버전인 httpd-2.4.23-win64-VC14.zip 파일을 받았습니다.

(https://www.apachelounge.com/download/VC14/binaries/httpd-2.4.23-win64-VC14.zip)



위 스샷을 보면 아시겠지만 아파치는 C++ Redistributable Visual Studio 2015 설치를 선행 요구합니다. 이게 없으면 중간에 VCRUNTIME140.dll 오류를 만날 수 있으니까 지켜주시고,

(https://www.microsoft.com/ko-kr/download/details.aspx?id=53840 → 32bit / 64bit 가려서 설치하시면 되겠죠.)

※ 요즘은 2017버전 설치를 요구하네요. 이 글 스샷에 얽매이지 말고 아파치 다운로드 페이지의 설명을 잘 보면서 구성요소를 받아서 깔아주세요.


▲ 설치를 합시다.



아파치 압축파일을 열어보면 위 스샷처럼 보일겁니다. Apache24 폴더만 원하는 곳에 풀어줍니다. 압축 푼 곳이 아파치가 설치되는 장소입니다.



▲ 저는 기본 권장경로인 C:\ 루트에 풀어줬습니다. 위 스샷처럼요.



다음으로 "아파치 설치 폴더\conf " 경로에 있는 httpd.conf 파일을 수정해야 합니다. 에디터 프로그램이면(메모장 등) 어떤 것이든 이 파일을 열 수 있습니다.

저는 메모장으로 열었습니다.



① ServerRoot 경로 변경



Ctrl+F로 ServerRoot "c:/Apache24" 를 찾습니다. 그리고 따옴표 안의 부분을 아파치 압축 푼 경로와 일치하게 적어줍니다. 이때 디렉토리 기호인 ₩는 가급적 / 로 변경해 주세요(이건 앞으로 경로 적는 부분 모두 공통입니다. PHP 설치할 때도 마찬가지.).


② 포트 변경 (옵션)



Listen 80 → Listen ####

원하는 포트로 변경하면 되는데, 보통 웹브라우저에서 도메인 입력하면 80포트로 접속되니까... 웬만하면 바꾸지 않도록 합니다. (www.naver.com:8888 처럼 일일이 포트 쳐서 접속하면 불편하겠죠?)


③ 웹문서 저장위치 변경



DocumentRoot "c:/Apache24/htdocs" 를 찾아서 따옴표 안의 위치를 원하는 경로로 수정합니다. 앞으로 홈페이지 데이터나 워드프레스 등의 블로그데이터는 모두 이 위치에 넣어야 합니다.

아래에 있는 <Directory "c:/Apache24/htdocs"> 의 경로도 DocumentRoot 경로와 일치시켜 줍니다.


※ 2017. 03. 26. 추가.

  [윈도우10 64bit] 아파치 2.4에서 VirtualHost로 1PC에 멀티도메인(서브도메인) 연결하기


④ ServerName 변경



#ServerName www.example.com:80 을 찾아서 #을 제거하고

ServerName localhost:80  또는

ServerName 127.0.0.1:80

라고 바꿔줍니다. 이러면 외부 인터넷망 미연결 시에도 브라우저에서 http://localhost/ 를 입력해서 홈페이지 데이터를 불러올 수 있습니다.

뒤의 80포트는 ②에서 Listen 포트를 변경했다면 반드시 일치시켜 주어야 합니다.


결론적으로 아파치를 C:\Apache24 에 압축을 풀고 기본설정을 유지한다면 ④번 항목만 신경써주면 되겠네요.



이제 설정파일 수정은 끝났고, 아파치 서비스를 윈도우에 등록해주면 됩니다.

Path 등록을 먼저 해줄 건데요,

Win키+R을 누르고 control 을 입력합니다. 그리고 시스템→고급 시스템 설정→고급 탭의 “환경 변수(N)” 단추를 누릅니다.



시스템 변수(S)에서 Path를 찾아 더블 클릭하면 환경 변수 편집 창이 나타나는데, “새로 만들기(N)” 버튼을 누르고 위 스크린 샷처럼 Apache를 설치한 경로에서 bin폴더까지의 값을 입력한 후 빠져나옵니다.



그리고 Win키+X 버튼을 누르고 명령프롬프트를 관리자 권한으로 실행합니다.



명령프롬프트 창에 httpd -k install 이라고 입력해서 아파치 서비스를 설치해주면...



방화벽 해제 관련 메세지가 뜨는데, 액세스 허용(A) 버튼을 눌러 계속 진행합니다. 명령프롬프트 창으로 돌아오면



httpd -k start 라고 입력하여 아파치 서비스를 시작해 줍니다.

이제 명령프롬프트 창을 닫고 웹브라우저를 띄워서 주소창에 http://localhost 또는 http://127.0.0.1 이라고 입력해 봅니다. 만약 ②에서 포트를 변경했었다면(예:8888) http://localhost:8888 같은 형태로 입력해야 합니다.



위 스크린 샷처럼 It works! 메세지가 뜨면 아파치 구동 성공입니다.


참고로

아파치 서비스 종료(중지)는 httpd -k stop

아파치 서비스 재시작은 httpd.exe -k restart

아파치 서비스 제거는 httpd.exe -k uninstall 혹은 httpd.exe -k uninstall -n APM_Apache2 처럼 서비스 이름을 같이 적어주면 됩니다.


-------------------------------------------------------


우분투 리눅스 설치용 USB 만드는 법(윈도우에서)

우분투 리눅스 듀얼부팅 설치방법 정리(윈도우10 기준)

우분투 삭제 방법(듀얼부팅에서 윈도우만 남기기)


[우분투 18.04 데스크톱] LAMP : 아파치(Apache) 설치과정 정리

트랙백 0 개   l   댓글 84

  • 이전 댓글 더보기
  • 김예솔 (2017.07.26 09:11 신고)

    좋은 정보 너무너무 감사합니다!!
    그런데 모든 절차를 따라하고 실행을 했는데 페이지에 index of 이렇게 뜨네요ㅠㅠㅠ
    오류인건가요???? 무엇이 잘못된 것인지 모르겠어요ㅠ

    • 짐농 (2017.07.26 12:13 신고)

      김예솔 // 웹문서 저장공간을 C:\Apache24\htdocs 말고 다른 곳으로 변경하셨다면 해당 위치에 index.html이 있어야 It Works!가 출력됩니다. 아파치 설치경로\htdocs 에 있는 index.html 파일을 웹문서 저장공간으로 옮겨보세요.

  • jiwan (2017.08.11 17:50 신고)

    좋은정보 정말 감사합니다!
    다름이 아니라.. 오류가 하나가 있는데
    'httpd' is not recognized as an internal or external command,
    operable program or batch file. 이렇게 나오네요... 커맨드를 먹지 않는거 같은데 어떻게 하면 좋을까요 ㅠㅠ???

    • 짐농 (2017.08.12 12:29 신고)

      jiwan // 모르겠습니다. 구글링해보세요.ㅠㅠ 비주얼C 런타임이나 아파치 설정파일 문제가 의심되긴 합니다.

  • 지나가는행인1 (2017.09.08 14:02 신고)

    It works! 망극하옵나이다 (--)(__)

    • 짐농 (2017.09.09 16:26 신고)

      지나가는행인1 // 기분 좋으시겠어요. 축하드립니다.^^

  • 감사합니다 (2017.10.05 15:43 신고)

    우와 문제 없이 잘 되네요! 친절한 설명 감사합니다^^ 다음 것들도 바로 따라해보겠습니다!!

    • 짐농 (2017.10.06 19:50 신고)

      감사합니다 // 댓글 감사드리고, 원하는 환경 구축 성공하시길 바랍니다.

  • alfredo (2017.10.21 13:03 신고)

    안녕하세요! 글 잘 읽고 갑니다. 저 글대로 했는데 http://localhost 에서 index of / 라고 뜨는데 어떻게 해야하나요?

    • 짐농 (2017.10.21 19:30 신고)

      alfredo // 제 글대로 “안하셔서” 해당 증상이 생긴 겁니다. 아파치 설정파일을 다시한번 점검해보세요.

    • alfredo (2017.10.21 22:57 신고)

      저... 위에서 한것 처럼 아파치 httpd 파일을 메모장으로 열어서 4개 설정 다 바꾸고 시스템 고급 설정 환경 변수에서 Path에 Apache24 설치 경로 새로 추가하고 cmd창으로 apache 서비스를 시작했는데도 index of/ 라고 뜨네요 혹시 몰라서 아파치 서버 재시작 해봤는데도 똑같아요... 어떡해야하나요

    • 짐농 (2017.10.21 23:27 신고)

      alfredo // ServerRoot 경로, DocumentRoot 경로, Directory 경로, ServerName 까지 확인.
      이후 웹문서 저장위치에 index.html 파일이 있는지 확인해보세요.
      그리고 접속해보세요.

    • alfredo (2017.10.22 15:09 신고)

      네 이제 된거 같아요 ㅠㅠ 좋은 설명 감사합니다.... 많이 알아가요!

  • 본나바로 (2017.11.06 15:13 신고)


    안녕하세요. 현재 카카오톡 플러스친구와 구축한 서버를 연동하는 프로젝트를 진행하고 있습니다. 블로그 내용 덕분에 서버 구축하는 데 까지는 성공을 했습니다 !.
    블로그에 나온대로 localhost로 서버가 구축된 것을 확인할 수 있었는데 , 막상 카카오톡 api test를 하면 wrong keyboard initialization 에러가 뜨는데 .. 구글링을 해봐도 이해가되지 않아 댓글드렸습니다!

    • 짐농 (2017.11.06 15:54 신고)

      본나바로 // 우선 localhost 말고 외부망에 연결되는 IP로도 접근 성공하셨나요?(https://www.findip.kr/)
      그리고 구글링해봤는데, 카카오톡 키보드 API 관련해서 생기는 문제인 건가요?
      제가 카톡에 관심이 없는데(배터리소모가 심해서 혐오함), 카톡 키보드 API에서 요구하는 Apache mod가 뭔지, php 설정파일에 들어가야 되는 추가기재사항이 뭔지를 알면 길이 보일 것 같습니다.
      혹, 워드프레스처럼 mod_rewrite를 요구하는 경우라면... http://jimnong.tistory.com/616 도입부분 참고하시고,

      웬만하면 서버는 우분투/CentOS로 돌리실 것을 권해봅니다. 자원 적게 먹고, 팁도 널렸고, SSL(TSL)도 무료로 적용 가능하기 때문입니다(Let's Encrypt).
      프로젝트 진행하실 정도면 업으로 하시는 것 같은데, 왜 굳이 어렵고 비효율적이게 윈도우+Apache를 택하시는지 모르겠습니다. 윈도우는 저처럼 초보딱지 못 뗀 사람들이 MS오피스, 한컴오피스, 포토샵 등등 같이 깨작거리면서 아파치도 올려서 블로그질 하고... 그러는 용도로 쓰는 운영체제 아니겠습니까?ㅠㅠ

      구글링으로 찾은 해결법이 이해되지 않는 이유는... 해결법이 리눅스용 Apache 기준으로 설명됐기 때문입니다.ㅋ Apache 설정파일에 대해 충분히 이해하고 있다면 해당 팁을 윈도우용 아파치에 적용하는 게 가능할 거고요.
      (아파치 설명서 구글번역해서 아파치 설정파일과 비교해가면서 째려보다보면 이해되는 순간이 올 겁니다. 많이 어렵진 않더라고요.^^)

    • 본나바로 (2017.11.07 14:15 신고)

      아하 !

      네 알겠습니다.

      업으로 하는게 아니라

      대학생인데 , 위에 말씀드렸던 것들과 관련해서 캡스톤 진행중이라서요 .
      리눅스도 많이 하긴 하는데 , 평소에 사용하는 윈도우로도 할 수 있지 않을까하는 생각에서 시작하게 되었습니다 !

    • 본나바로 (2017.11.08 16:06 신고)

      워드프레스까지 해서 서버구축을 완료했습니다.

      그러면 이 서버를 이용해서 카카오톡 키보드 API에 맞게 설정을 한 후 Apache 웹문서 저장하는 곳에 넣어서 돌리면 테스트를 통과할까요?

      서버는 카카오톡이 요구하는 조건에 맞게 통신하는 용도로만 사용하려고 해서요..!!

    • 짐농 (2017.11.08 16:15 신고)

      본나바로 // 키보드 API 기술문서를 보셔야 할 것 같습니다. 제가 해당 기술문서를 본 적이 없어서 요구하는 Apache 모드&PHP 확장모듈들이 뭐가 있는지 모르거든요.^^;;
      (카톡 소셜로그인 API는 워드프레스에 추가 성공했었는데, 그거랑은 직접적인 관련이 없을 듯하죠?)

    • 본나바로 (2017.11.08 19:09 신고)

      오 그거를 같이 프로젝트 하는 친구가 이야기 하더라구요.. 혹시 어떻게 진행하셨는지 알 수 있을까요?

  • ㅎㅕㄴㅣㄴㅔ (2017.11.23 16:51 신고)

    서버 잘 동작하는데요...
    워드프레스 설치 후 테마나 플러그인이 설치가 안되요.
    -----------
    설치 실패: 다운로드 실패. No working transports found
    -----------
    퍼미션 문제일것 같아서 FTP로 접속하려는데....
    localhost
    80
    id : ???
    pw : ???
    id 와 pw는 어떻게 알 수 있죠?
    아파치 설치할 때 id, pw설정은 없었던 것 같은데....

    탐색기 창 속성에서 폴더 퍼미션을 모든 권한으로 해 주어도 안되더라구요...ㅜㅜㅜ

    • 짐농 (2017.11.23 19:54 신고)

      ㅎㅕㄴㅣㄴㅔ // 아파치는 http 프로토콜 서버 구축용 프로그램입니다.
      워드프레스 관리자페이지에서의 테마/플러그인 설치는 FTP를 이용하지 않습니다(윈도우 서버 기준.)
      No working transports found 증상 재현과 해결 사례는 저의 워드프레스 설치방법 포스팅 본문 하단에 적어놨었는데, 그 방법을 동원해도 안되던가요?

      FTP 프로토콜은 FTP서버 프로그램으로 열 수 있는데, 서버 PC에 FTP서버 프로그램 설치하셨습니까? 80포트는 HTTP 프로토콜이 점유하고 있으므로 다른 포트를 지정해야 합니다.
      FTP 프로토콜은 계정정보를 암호화하지 않고 그대로 전송하므로, 패킷 가로채기 당했을 때 일이 커질 수 있습니다. 굳이 FTP를 써야겠다면 SFTP나 FTPS(FTPES) 프로토콜로 구축하는 것을 권장합니다.

  • 명철 (2017.11.28 23:07 신고)

    httpd -k install후 성공적으로 설치됬다 아래에
    httpd: Could not open configuration file C:/apm/Apache24/conf/httpd.conf: \xc1\xf6\xc1\xa4\xb5\xc8 \xc6\xc4\xc0\xcf\xc0\xbb \xc3\xa3\xc0\xbb \xbc\xf6 \xbe\xf8\xbd\xc0\xb4\xcf\xb4\xd9. 이게 뜨는데 그래서 그런진 몰라도 뒤가 안되네요 마지막 mysql부분이 안되서 다 지우고 다시하고있는데 ㅜㅜ

    • 명철 (2017.11.28 23:11 신고)

      아 이유 알아냈네요 ㅋㅋㅋ 너무 바보같은 실수하는중이었네요 ㅜㅜ

  • 김북성 (2017.12.08 17:47 신고)

    포스팅 감사합니다

    근데 저는 설치가 잘안되네요;;


    PS C:\WINDOWS\system32> httpd -k uninstall
    Removing the 'Apache2.4' service
    (OS 1072)지정된 서비스가 지워진 것으로 표시되었습니다. : AH00374: Failed to delete the 'Apache2.4' service
    PS C:\WINDOWS\system32> httpd -k install
    [Fri ] [mpm_winnt:error] [pid 3284:tid 532] AH00433: Apache2.4: Service is already installed.
    PS C:\WINDOWS\system32>

    ---------------------------------------
    지워지도 않고 설치도안되고
    여기서 진행이 안되어지네요;;

    • 김북성 (2017.12.08 18:03 신고)

      아 찾았습니다 제어판에 서비스목록에서 apache2.4 돌고 있었네요;;;

      쨋든 포스팅 감사합니다

    • 짐농 (2017.12.08 22:32 신고)

      김북성 // 원하는 서비스 원활히 구축하시길 바랍니다.

  • 겨울 (2017.12.27 14:20 신고)

    감사합니다.

  • Chloe (2018.01.05 14:37 신고)

    좋은 정보 공유해주셔서 너무 감사합니다!
    install & start 마치고 '이 페이지를 표시할 수 없다'고 하여 Windows 작업 관리자에서 Apache2.4의 상태:중지됨 을 찾았습니다. 그런데 '서비스 시작'을 계속 눌러봐도 아무 반응이 없는데, 어떻게 해야 할까요..??

    • 짐농 (2018.01.05 20:27 신고)

      Chloe // 어떤 수단을 써서라도 아파치 서비스를 켜면 되겠죠.
      윈도우 꼬인 거 해결하는 데에는 정해진 길이 없지 않겠습니까?

  • min (2018.02.23 16:37 신고)

    덕분에 잘 해결했습니다. 정말 감사합니다!

  • 기칠치 (2018.02.24 20:10 신고)

    감사합니다. 정말로 죽~ 따라하니 가볍게 설치가 되네요. 이제 톰캣하고 연결만 하면 되겠어요. ^^

    • 짐농 (2018.02.24 20:46 신고)

      기칠치 // 톰캣은 어떤 역할을 하나요? 궁금해서 여쭤봅니다. ㅠㅠ

  • Novv (2018.03.08 16:39 신고)

    친절하게 설명해주신 덕분에 문제없이 서버구축에 성공했습니다!!
    근대 포트를 변견하려고 하는데 변견이 안되서 그러는데 혹시 다른방법이
    있나요? 메모장내용변경해서 저장했는데도 443으로는 변경이 안되네요..

    • 짐농 (2018.03.08 20:36 신고)

      Novv // 저는 본문에서 아파치 “설치 시점에” 포트 변경하는 방법을 제시했는데, 컴퓨터가 실질적으로 처리하는 작업은 “설정파일을 참고하여” ①윈도우 아파치 서비스를 설치하고, ②윈도우 방화벽에서 포트를 여는 것입니다. 윈도우 방화벽 해제하는 팝업 대화창은 본문에 스샷으로 넣어놨었죠?

      “설치 시점 이후에” 포트를 변경하려면 ①설정파일 변경 ②방화벽에서 해당 포트를 열어주고 ③아파치 서비스를 재시작하는 식으로 진행하면 될 겁니다. 간과하기 쉬운 부분은 방화벽이라고 생각해요.

      잘 모르겠으면 아파치 삭제 후 설정파일의 포트를 바꾸고 재설치하는 식으로 진행해도 됩니다.

  • 스으케 (2018.04.11 12:34 신고)

    기본세팅부터 너무 좋은글 보고 배워갑니다 너무 감사합니다~
    - 프론트에서 백엔드 준비중인 작업자

    • 짐농 (2018.04.11 18:13 신고)

      스으케 // 최적화도 하시면 좋을 겁니다. 제 포스팅에는 관련 내용이 없으니 검색해보세요(아니면 비트나미 스택을 가상머신에 깔고 구조 살펴보면 감이 잡히실 겁니다.).

  • Happy (2018.04.18 13:41 신고)

    하라는대로 하니까 It Works!! 바로 나오네요. 감사합니다.

  • 산사람 (2018.05.06 13:13 신고)

    좋은정보 감사합니다.

  • RMDRID (2018.06.09 19:30 신고)

    포스팅 감사합니다~
    php 7.2.6 설치했습니다.

  • 컴공초보 (2018.06.19 07:35 신고)

    httpd : 'httpd' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확
    한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.
    위치 줄:1 문자:1
    + httpd -k install
    + ~~~~~
    + CategoryInfo : ObjectNotFound: (httpd:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    라고 떠요.. 어떻하면 좋을까요? 이 설명에서 나온 건 모두 했는데..

    • 짐농 (2018.06.19 10:07 신고)

      컴공초보 // 제 생각에는 정확하게 따라하지 않으신 것 같습니다. 명령프롬프트(관리자)에서 처리했는데도 같은 에러가 계속 뜬다면 운영체제와 아파치 버전, 진행과정 스샷을 공개해 주시면 원인 파악에 도움이 될 것 같습니다.

  • 초보 (2018.08.27 15:29 신고)

    안녕하세요~
    설명해주신대로 따라하는데
    마지막 명령프롬포트에서 k install 입력하니까
    'httpd'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.라고 나오는데
    이런경우는 ㅇㅓ떻게 해야하나요?ㅠㅠ
    잘안되네요..

★ 댓글을 남겨주시면 감사하겠습니다. ★