윈도우에서 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>

관련 포스트

APMSETUP에서 계정, DB 폴더 변경

윈도우에서 APMSETUP7을 설치하면 기본적으로 설치되는 경로는 C:\APM_Setup\입니다.
이 때, 아파치 계정은 C:\APM_Setup\htdocs\ 에 설치되고,
MySQL DB 파일은 C:\APM_Setup\Server\MySQL5\data\ 에 설치됩니다.

처음 설치할 때에 설치 경로를 바꾸어 준다면 C:\APM_Setup\을 D:\apm\과 같이 다른 경로로 바꾸어 줄 수 있지만,
그 내부의 아파치 계정과 MySQL DB 파일이 저장되는 위치는 무조건 APMSETUP이 설치된 경로의 하위 폴더가 됩니다.

하드 디스크를 자주 포맷하는 사람이나, 계정을 다른 서버로 옮기는 일을 해야 하는 사람에게는 이러한 점 때문에 백업과 복원이 복잡하고 귀찮아집니다.

이를 해결하기 위한 방법 중 하나로는 APMSETUP의 설치 폴더로부터 아파치 계정, MySQL DB의 저장 경로를 분리하여 새로운 경로로 지정하는 방법이 있습니다.
실제로 제가 사용하고 있는 방법이기도 합니다.

이 포스팅에서는 다음과 같은 작업을 다룹니다.

APMSETUP이 C:\APM_Setup\에 설치되어 있는 상태에서,
아파치 계정 폴더를 C:\APM_Setup\htdocs\ 에서 D:\home\public_html\으로 변경하고,
MySQL DB 폴더를 C:\APM_Setup\Server\MySQL5\data\에서 D:\mysql\data\으로 변경합니다.

1. 아파치 계정 폴더 위치 변경

시작 > 프로그램 > APMSETUP 7 for Win32 > APMSETUP Monitor를 클릭하여 APMSETUP Monitor를 실행시킵니다.

APMSETUP Monitor의 Apache2에서 STOP 을 클릭해서 아파치 서버의 실행을 중단시킵니다.

시스템 트레이 > APMSETUP Monitor의 아이콘을 마우스 우클릭 > 서버 환경 설정을 클릭하여 APMSETUP 서버 설정 창을 띄웁니다.

APMSETUP 서버 설정 창의 상단의 탭 > Apache 설정 > DocumentRoot 입력란에 “D:/home/public_html”를 입력합니다.

저장 버튼을 클릭하여 닫습니다.

기존에 C:\APM_Setup\htdocs\ 내부에 파일이 있었다면 윈도우 탐색기를 통해 그 파일들을 D:\home\public_html\ 폴더로 이동시켜줍니다.

APMSETUP Monitor의 Apache2에서 START 를 클릭해서 아파치 서버를 다시 실행시킵니다.

2. MySQL DB 폴더 위치 변경

APMSETUP Monitor를 실행시킨 뒤 MySQL5에서 STOP 을 눌러서 MySQL의 실행을 중단시킵니다.

편집하기 위해 C:\APM_Setup\Server\MySQL5\data\my.ini 파일을 메모장 등으로 엽니다.

my.ini 파일의 30번째 행 근처에 있는 [mysqld] 를 찾고, 그 아랫줄에 datadir = D:/mysql/data/ 를 추가하고 저장합니다.

C:\APM_Setup\Server\MySQL5\data\ 내부에 있는 파일 중 my.ini 파일을 제외한 모든 파일을 D:\mysql\data\로 이동합니다.

C:\APM_Setup\Server\MySQL5\data\my.ini 파일을 복사해서 C:\APM_Setup\Server\MySQL5\my.ini 파일을 만들어줍니다.

APMSETUP Monitor를 실행시킨 뒤 MySQL5에서 START 를 눌러서 MySQL를 다시 실행시킵니다.

이제 무엇을 할 수 있는가

apache와 mysql이 D드라이브에 저장되어 있습니다.
C드라이브를 포맷하더라도 D드라이브에는 계정과 DB가 남아 있으므로 데이터가 유실되지 않습니다.
또한 계정을 백업할 때에는 D:\home\ 폴더와 D:\mysql\ 폴더를 압축해서 보관하시면 됩니다.
복원은 백업과 반대로 하시면 됩니다.

참고

L,APM mySql data 폴더를 다른곳으로 변경하고 windows, ubuntu 같은 폴더 사용하기

MySQL 데이타 디렉토리 변경방법

PS

이보다 더 편리한 방법은, 처음에 APMSETUP을 설치할 때에 D:드라이브에 설치하는 것입니다.

계정은 D:\APM_SETUP\htdocs\ 폴더에 저장되고,
DB는 D:\APM_Setup\Server\MySQL5\data\ 폴더에 저장되게 되므로,
C:드라이브를 포맷하더라도 D:드라이브에 저장된 아파치 계정과 MySQL DB는 유지됩니다.

다만, 이 상태에서 C:드라이브를 포맷하고 APMSETUP을 다시 설치하면 기존 자료가 유지되는지, 유실되는지는 확인하지 못했습니다.
혹시 확인해 보신 분이 계시면 댓글을 남겨 주시면 감사하겠습니다.

관련 포스트