윈도우에서 xampp 환경 구축

xampp 다운로드

PHP, MySQL 환경을 구축하는 방법은 다양하지만 대개는 아파치 서버를 기반으로 작동하게 됩니다.
즉 리눅스 환경의 경우 LAMP(linux+apache+mysql+php)가 되고, 윈도우 환경의 경우 WAMP(windows+apache+mysql+php)가 될 것입니다.

윈도우에서 WAMP를 구축하기 위해서는 직접 apache, mysql, php를 각각 설치할 수도 있지만, 대개는 xampp나 apmsetup을 사용하게 됩니다.
아래에 링크된 xampp 다운로드 페이지에서 xampp의 최신 버전을 다운받습니다.

xampp 윈도우 버전

설치 버전이 있고 portable 버전이 있는데, 설치 버전은 컴퓨터에 설치해 두는 것이고, portable 버전은 설치 없이 USB나 외장 하드디스크에 넣어서 가지고 다닐 수 있는 것입니다.
상황에 맞게 선택하면 됩는데, 저는 portable 버전을 선택했습니다.

xampp 설치

portable 버전의 경우 외장 하드 디스크/USB의 xampp 라는 폴더에 압축을 풀어주면 설치가 끝납니다.
설치 버전의 경우 설치 프로그램을 실행하면 됩니다.
여기에서는 portable 버전을 x:\xampp\에 압축을 풀었다고 하고 진행하겠습니다.

설치가 끝나면 x:\xampp\xampp-control.exe 를 실행합니다.
다음 창이 실행되면 Start 버튼을 클릭하여 Apache와 MySQL 을 각각 시작합니다.

서버가 제대로 작동하는지 확인하기 위해서는 웹브라우저를 열고 주소 표시줄에 http://127.0.0.1/ 을 입력합니다.
페이지를 찾을 수 없다는 화면이 나올 경우 xampp가 제대로 실행중인지, 방화벽에서 해당 포트를 허용했는지 확인합니다.
언어 선택 화면(한국어가 없으므로 English 선택) 후에 아래와 같은 페이지가 나온다면 제대로 설치가 된 것입니다.

보안을 위한 xampp 설정

좌측의 메뉴 중에서 Security를 클릭합니다.

화면을 스크롤해서 내려가면 http://127.0.0.1/security/xamppsecurity.php 로의 링크가 있습니다.
이 링크를 클릭해서 데이터베이스 root 계정의 암호와 xampp 설정 페이지 접속 암호를 설정합니다.
한꺼번에 저장되지 않고, 각각의 항목별로 암호를 입력하고 따로 저장 버튼을 눌러주어야 합니다.

가상 호스팅 설정

하나의 apache 서버에서 여러 계정을 호스팅할 수 있습니다.
이렇게 하기 위해서는 xampp에서 virtual hosting에 관련된 파일들을 설정해 주어야 합니다.

x:\xampp\apache\conf\extra\httpd-vhosts.conf 파일을 열어서 수정합니다.

##NameVirtualHost *:80

라고 된 부분을

NameVirtualHost *:80

로 수정합니다.
#은 주석을 의미하는데, 주석을 해제하면 NameVirtualHost 기능이 작동하게 됩니다.

그런 뒤에 같은 파일의 마지막에

<VirtualHost *:80>
DocumentRoot "/xampp/htdocs"
ServerName localhost
</VirtualHost>

를 추가합니다.
이렇게 하면 이후에 가상 호스트를 설정해도 웹브라우저에 localhost를 입력하면 기존의 xampp 설정 페이지에 접속할 수 있습니다.

또한 같은 파일의 마지막에

<VirtualHost *:80>
DocumentRoot "/home/wp/public_html"
ServerName 127.0.0.2
<Directory "/home/wp/public_html">
Options Indexes Includes execCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

를 추가합니다.
이렇게 하면 웹브라우저에서 http://127.0.0.2/ 로 접속하면 x:\home\wp\public_html\ 에 접속할 수 있습니다.
계정(폴더) 이름은 wp가 아니라도 원하는 이름으로 정하면 됩니다.

이제 실제로 x:\home\wp\public_html\ 라는 폴더를 만들면 작업이 끝납니다.
접속이 되는지 확인하기 위해서 x:\home\wp\public_html\ 내에 index.php 파일을 만들고, 다음 내용을 입력합니다.

<?php phpinfo(); ?>

수정된 아파치 설정을 반영하기 위해서 xampp control 화면에서 Apache를 Stop 했다가 다시 Start 버튼을 클릭하여 재시작합니다.
웹브라우저에서 http://127.0.0.2/ 를 입력하여 다음과 같은 화면이 나오면 성공입니다.

또 다른 가상 호스트를 추가하려면

다음 두가지 작업을 하면 됩니다.
gnu라는 가상호스트를 127.0.0.3에 추가하는 경우를 예로 들겠습니다.

1. x:\home\ 내에 임의의 폴더를 생성하고 public_html 폴더 생성
예를 들면 x:\home\gnu\public_html 등과 같이 됩니다.

2. x:\xampp\apache\conf\extra\httpd-vhosts.conf 파일 끝에 다음 내용 추가

<VirtualHost *:80>
DocumentRoot "/home/gnu/public_html"
ServerName 127.0.0.3
<Directory "/home/gnu/public_html">
Options Indexes Includes execCGI
Require all granted
</Directory>
</VirtualHost>

관련 포스트

“윈도우에서 xampp 환경 구축”에 대한 22개의 댓글

  1. 쭉 따라서 시도를 했는데 가상호스트 설정부분에서 x:\xampp\apache\conf\extra\httpd-vhosts.conf 파일이 열리지 않네요. 그냥 진행하다가 않되어서 다시 127.0.0.1/에 접속하려하니
    사용자이름과 비밀번호를 요구하네요. 어떻게 해야하는지 ….

    1. 1. httpd-vhosts.conf 파일이 열리지 않는 문제
      .conf 라는 확장자가 메모장과 연결되어 있지 않기 때문입니다.
      메모장을 실행해서 띄워놓고 httpd-vhosts.conf 파일을 메모장에 드래그&드롭 하면 파일이 열립니다.

      2. 사용자이름과 비밀번호를 요구하는 문제
      앞 단계에서 xampp 설정 페이지 접속 암호를 설정하셨기 때문에, 그 때 설정한 암호를 입력해야 접속할 수 있습니다.
      아이디는 root입니다.

      1. xampp-win32-1.8.2-2-VC9.zip 으로 내려받으니 80포트를 다른 포트로 바꿔도 아파치가 실행안되는 문제가 window7에서 발생하네요^^ 저는 그래서 한참 삽질 하다 installer로 다 시깔앗더니 해결되네요 혹시나 저같은 분이 계실까봐 참고하세용 ^^

  2. 접속이 되는지 확인하기 위해서 x:\home\wp\public_html\ 내에 index.php 파일을 만들고, 다음 내용을 입력합니다.

    라고 하셨는데 php파일을 어떻게 만드는지 잘모르겠네요ㅜㅜ밑에 태그?코드?는 httpd-vhosts.conf파일에 입력하는건가요 php파일 만들때 그안에 입력하는건가요??

    1. 1. php 파일을 만드는 방법
      .php와 같은 확장자를 지정하려면 메모장에서 파일을 저장할 때에 파일 이름에 따옴표를 붙이면 됩니다.
      파일 이름 입력 칸에 따옴표를 포함해서 “index.php”라고 입력하고 저장하면 index.php 파일로 저장이 됩니다.

      2. 를 저장하는 위치
      이 내용은 index.php 파일에 들어가야 합니다.

      3. 요약
      1번과 2번의 답변을 요약하면 아래와 같은 순서대로 하면 됩니다.
      1) 메모장을 실행한다.
      2) 를 입력하고 메뉴에서 파일 > 저장(Ctrl+S)를 클릭한다.
      3) 파일 저장 경로 선택하는 창에서 x:\home\wp\public_html\ 폴더로 들어간다.
      4) 파일 이름 입력칸에 “index.php” 라고 입력하고 저장 버튼을 클릭한다.
      5) 웹브라우저에서 http://127.0.0.2/ 를 입력해서 확인한다.

  3. 마지막에 http://127.0.0.2/ 를 입력하여 확인할 때,

    ‘접근이 거부 됨! 요청한 디렉토리에 접근할 수 있는 권한이 없습니다. 디렉토리에 첫 페이지가 없거나 아니면 읽기 보호가 되어 있습니다. 만약 이것이 서버 오류라고 생각되면, 웹 관리자에게 연락하시기 바랍니다.’ 라는 메시지가 뜹니다. 이럴땐 어떻게 해야 하나요?

  4. 비밀번호를 요구하는데 아까 분명히 제가 설정을 하였는데

    다르다고 나옵니다. 그래서 지웠다가 다시깔았는데도 접속이 안되네요…..

    이럴 때는 어떻게 해야하나요

    1. xampp 설치 폴더 안에는 security 라는 폴더가 있습니다.
      xamppdirpasswd.txt 파일에 xampp 암호가 저장되어 있고,
      mysqlrootpasswd.txt 파일에 mysql 암호가 저장되어 있습니다.

  5. Mysql 이 실행이 안됩니다. 위에서 비밀번호 요구 때문에 설치를 새로 하였는데

    외장하드에 xampp 포터블로 설치했습니다.

    그런데 mysql 이라는 것이 실행이 자꾸 안됩니다. 어떻게 해야 실행이 가능할까요

    그리고 nam 폴더에 워드프레스 파일을 넣으라고 하는데 이해가 안갑니다.

    부디 도움이 필요한 상황입니다. ㅠㅠㅠㅠ

  6. 오후 8:36:52 [main] Initializing Control Panel
    오후 8:36:52 [main] Windows Version: Windows 7 Home Premium SP1 64-bit
    오후 8:36:52 [main] XAMPP Version: ???
    오후 8:36:52 [main] Control Panel Version: 3.1.0 Beta 4 [ Compiled: September 20th 2012 ]
    오후 8:36:52 [main] You are not running with administrator rights! This will work for
    오후 8:36:52 [main] most application stuff but whenever you do something with services
    오후 8:36:52 [main] there will be a security dialogue or things will break! So think
    오후 8:36:52 [main] about running this application with administrator rights!
    오후 8:36:52 [main] XAMPP Installation Directory: “h:\xampp-portable\”
    오후 8:36:52 [main] Checking for prerequisites
    오후 8:36:52 [main] All prerequisites found
    오후 8:36:52 [main] Initializing Modules
    오후 8:36:52 [mysql] MySQL Service detected with wrong path
    오후 8:36:52 [mysql] Change XAMPP MySQL settings or
    오후 8:36:52 [mysql] Uninstall/disable the other service manually first
    오후 8:36:52 [mysql] Found Path: ERROR: Not Able To Open Service Manager
    오후 8:36:52 [mysql] Expected Path: h:\xampp-portable\mysql\bin\mysqld.exe –defaults-file=h:\xampp-portable\mysql\bin\my.ini mysql
    오후 8:36:52 [main] The FileZilla module is disabled
    오후 8:36:52 [main] The Mercury module is disabled
    오후 8:36:52 [main] Starting Check-Timer
    오후 8:36:52 [main] Control Panel Ready
    오후 8:36:54 [mysql] Attempting to start MySQL service…

    실행 하면 자꾸 이렇게 나오네요…… 어떻게 해야 하나요…

    1. xampp와 별도로 mysql이 설치되어 있거나, 혹은 이전에 xampp를 삭제했다가 다시 설치한 경우에 말씀하신 문제가 발생할 수 있습니다.

      이를 해결하기 위해서는 다음과 같이 하면 됩니다
      (참조: http://www.apachefriends.org/f/viewtopic.php?p=196832&sid=9bff9a1f7a905877ab435873f63c236a )

      1. 명령 프롬프트를 관리자 권한으로 실행
      2. sc delete mysql 를 입력하고 실행
      3. xampp 컨트롤 패널을 통해서 mysql을 stop, start

      이렇게 해보셨는데도 안되시면 윈도우 복원도 하나의 방법입니다.

  7. httpd-vhosts파일 수정하다가 잘못건드린 것 같은데 원상복구하려면 다시깔아야하나요?ㅠㅠ
    ##NameVirtualHost *:80 이거 수정했을 때
    Error: Apache shutdown unexpectedly.
    This may be due to a blocked port, missing dependencies,
    improper privileges, a crash, or a shutdown by another method.
    Check the “/xampp/apache/logs/error.log” file
    and the Windows Event Viewer for more clues
    계속 이런메세지가 뜹니다 ㅜㅜ php파일도 다 만들엇는데 어떡해야 될까요?

  8. #
    # Virtual Hosts
    #
    # If you want to maintain multiple domains/hostnames on your
    # machine you can setup VirtualHost containers for them. Most configurations
    # use only name-based virtual hosts so the server doesn’t need to worry about
    # IP addresses. This is indicated by the asterisks in the directives below.
    #
    # Please see the documentation at
    #
    # for further details before you try to setup virtual hosts.
    #
    # You may use the command line option ‘-S’ to verify your virtual host
    # configuration.

    #
    # Use name-based virtual hosting.
    #
    NameVirtualHost *:80

    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for all requests that do not
    # match a ServerName or ServerAlias in any block.
    #
    ##
    ##ServerAdmin postmaster@dummy-host.localhost
    ##DocumentRoot “C:/xampp/htdocs/dummy-host.localhost”
    ##ServerName dummy-host.localhost
    ##ServerAlias http://www.dummy-host.localhost
    ##ErrorLog “logs/dummy-host.localhost-error.log”
    ##CustomLog “logs/dummy-host.localhost-access.log” combined
    ##

    ##
    ##ServerAdmin postmaster@dummy-host2.localhost
    ##DocumentRoot “C:/xampp/htdocs/dummy-host2.localhost”
    ##ServerName dummy-host2.localhost
    ##ServerAlias http://www.dummy-host2.localhost
    ##ErrorLog “logs/dummy-host2.localhost-error.log”
    ##CustomLog “logs/dummy-host2.localhost-access.log” combined
    ##

    DocumentRoot “/xampp/htdocs”ServerName localhost
    DocumentRoot “/home/wp/public_html”ServerName 127.0.0.2Options Indexes Includes execCGIAllowOverride AllRequire all granted

    맞게 쓴건가요?.. 에러메세지가 자꾸나요.. 파일도 다 만들어넣었구요..

  9. xampp를 포터블 버전으로 사용하려고 하면 반드시 Lite버전으로 내려받아야 하나요?
    일반 윈도우 7z 버전으로는 포터블을 사용할 수 없나요?

  10. 로컬에서 127.0.0.2로는 접속되는데 외부에서 접속하려면 주소를 뭘로 접속하는건가요

  11. mysql을 실행하면 다음과 같은 에러가 납니다.

    오후 10:42:11 [mysql] Problem detected!
    오후 10:42:11 [mysql] Port 3306 in use by “”C:\Program Files (x86)\MySQL\MySQL Server 6.0\bin\mysqld-nt” –defaults-file=”C:\Program Files (x86)\MySQL\MySQL Server 6.0\my.ini” MySQL”!
    오후 10:42:11 [mysql] MySQL WILL NOT start without the configured ports free!
    오후 10:42:11 [mysql] You need to uninstall/disable/reconfigure the blocking application
    오후 10:42:11 [mysql] or reconfigure MySQL and the Control Panel to listen on a different port
    오후 10:42:11 [mysql] Attempting to start MySQL service…

    일전에 공부용으로 mysql을 따로 설치해서 서버운영하고 있었는데 웹개발할려고 xampp설치하다보니 이런 에러가나는것같네요. 읽어보면 포트에러라는데 컨픽파일(my.ini)에서 수정할려고 열어봐도 도무지 뭘 건드려야 될지 모르겠네요..;; 대강 수정해봤는데도 안먹는걸 보면 흠..
    아 참고로 비밀번호 설정되있습니다.
    유저네임은 root, 비밀번호는 moonsoon, 기본스키마가 제가쓰던게 mysql에서는 neomind로 설정되있고, xampp용 스키마는 아직 안넣었습니다. 포트는 3306이고요

  12. 가상호스트 설정을 위와같이 했는데 자꾸 오류가 납니다.
    어느부분을 수정해야되는지 잘몰라 오류 메세지 남김니다.

    AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace.

    x:\xampp\apache\conf\extra\httpd-vhosts.conf 여기말고
    x:\xampp\apache\conf\httpd.conf 도 수정해야 하나요?

답글 남기기

이메일 주소를 발행하지 않을 것입니다.