윈도우에서 Apache와 PHP 연동

1. PHP 내려받기

링크: https://secure.php.net/downloads.php

2017/03/12 기준 5.6.30버전과 7.1.2버전이 있는데 7.x가 실행시간 더 빠르대요.

Current Stable PHP 7.x에 있는 Windows downloads를 클릭합니다!

이 중 Thread Safe라고 되어있는 것 중 시스템 종류(32/64bit)에 맞는 Zip 파일을 다운로드 합니다.

다운로드 받은 파일은 원하는 경로에 압축을 풀어 놓고 나중에 경로 적기 쉽게 PHP로 폴더이름을 바꿔줍시다. 저는 “E:/Program Files/”에 압축 풀었습니다.

2. php.ini 수정하기

php.ini을 수정하면 curl, mysql 등 다양한 확장기능을 사용할 수 있습니다.

PHP 폴더 안에서 “php.ini-development”를 찾아서 “php.ini”으로 이름을 바꾸고 메모장으로 실행합니다.

먼저 확장파일이 들어있는 ext 폴더 경로를 알려줘야 합니다.

;extension_dir = “./”를 검색해서 주석처리(;)를 지우고 ./로 된 부분을 (PHP 경로)\ext로 바꿔줍니다.

예) extension_dir = “E:\Program Files\PHP\ext”

그다음 다음 항목들을 검색해서 앞에 주석처리(;)된 부분만 지워줍니다.

;extension=msql.dll -> extension=msql.dll

;extension=php_curl.dll -> extension=php_curl.dll

;extension=php_mysqli.dll -> extension=php_mysqli.dll

;extension=php_pdo_mysql.dll -> extension=php_pdo_mysql.dll

만약 위에서 PHP 5.x로 받으신 분은 ;extension=php_mysql.dll도 찾아서 주석처리를 지워줍니다. php7에서는 php_mysql.dll의 기능을 php_mysqli.dll이 대체하기 때문에 없어졌다고 하네요.

Apache 내려받기 & 설정

1. Apache 내려받기

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

이것도 자신의 시스템 종류(32/64bit)에 맞춰 받아서 압축파일 안에 “Apache24” 폴더만 C:/에 압축을 풀어줍니다. 원하는 경로에 풀어도 되지만 httpd.conf 파일 수정할 때 Apache24 폴더 경로 기본값이 C:/라서 번거러운 작업 몇 가지 줄어듭니다. 저는 D:/에 압축을 풀었습니다.

2. httpd.conf 설정

이제 Apache 서버의 포트설정, php 연동을 위한 설정을 해야합니다.

Apache24/conf 폴더 안에 있는 httpd.conf 파일을 메모장으로 열어서 다음 순서대로 찾아가면서 경로를 설정합니다.

ServerRoot “c:/Apache24”

DocumentRoot “c:/Apache24/htdocs

<Directory “c:/Apache24/htdocs”>

<Directory “c:/Apache24/cgi-bin”>

ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/”

각 항목을 메모장에서 찾아서 아래 예시와 같이 자신의 경로에 맞게 변경해줍니다. 항목 중 DocumentRoot를 위와 같이 기본값으로 주면 c:/Apache24/htdocs 안에 있는 파일을 보여줄 수 있게 됩니다. 예를 들어 c:/Apache24/htdocs 안에 hello.html이라는 파일이 있으면 나중에 주소창에 localhost/hello.html으로 연결하여 hello.html 파일을 브라우저로 열 수 있습니다. 기본값으로 두거나 원하는 폴더 경로로 변경합니다.

d:/Apache24인 경우 예시

ServerRoot “d:/Apache24”

DocumentRoot “d:/Apache24/htdocs

<Directory “d:/Apache24/htdocs”>

<Directory “d:/Apache24/cgi-bin”>

ScriptAlias /cgi-bin/ “d:/Apache24/cgi-bin/”

다음 항목들을 찾아서 변경하여 포트번호를 설정합니다. 포트번호는 기본값 80으로 되어있는데 임의의 포트로 수정하려면 아래와 같이 변경할 수 있습니다. 저는 8008로 설정해봤습니다.

Listen 8008

ServerName localhost:8008

마지막으로 PHP 연동을 위해 맨 아래에 다음을 추가해줍니다.

PHPIniDir “E:/Program Files/PHP/php.ini”

LoadModule php7_module “E:/Program Files/PHP/php7apache2_4.dll”

AddType application/x-httpd-php .php .inc .phtml

PHPIniDir 은 앞에서 수정했던 php.ini의 위치를 적습니다.

LoadModule 은 PHP폴더 내의 php7apache2_4.dll을 확인하시고 경로/파일명을 씁니다. php5로 받으신 분은 7 부분을 5로 고치고 php5apache2_4.dll을 확인하고 씁니다.

3. PHP와 연동하기

PHP 폴더의 libeay32.dll, libssh2.dll, ssleay32.dll을 복사해서 .\Apache24\bin\ 에 덮어씌워 줍니다. 아파치에서 curl_init() 같은 함수를 undefine으로 처리하는 문제를 해결해줍니다.

4. Apache 설치 및 실행

cmd를 관리자 권한으로 실행시켜 다음과 같이 적습니다.

(Apache24 경로)\bin\httpd.exe -k install

예) D:\Apache24\bin\httpd.exe -k install

성공 시 아래와 같이 나옵니다.

여기서 안되는 경우, vc15 패키지 를 다운로드&설치 후 다시 해보세요.

만약 아래와 같은 화면이 뜬다면 httpd.conf 파일에서 설정한 포트번호가 다른 서버로 사용 중인 경우입니다. 이 경우, httpd.conf에서 Listen과 ServerName의 포트번호만 변경하고 다음으로 넘어가시면 됩니다.

여기까지 성공하셨으면 이제 제어판-큰 아이콘-관리 도구-서비스 (또는 시작-서비스 검색)에서 Apache2.4를 오른쪽 클릭해서 시작을 클릭합니다. 그리고 브라우저를 실행하여 주소창에 다음과 같이 적습니다.

localhost:(위에서 설정한 포트번호)/index.html

It works!

※ 부록

localhost 를 주소창에 입력했을 때 뜨는 It works!를 없애고 싶을 때…

1. 서버 루트 폴더에서 index.html을 지운다

2. httpd.conf를 메모장으로 실행한다

3. IfModule dir_module 를 검색해서 바로 밑줄의

DirectoryIndex index.html 을 주석처리한다