티스토리 뷰

오늘은 Apache와 PHP를 수동으로 설치하는 것을 해보려 합니다.
제가 이 글을 쓰는 이유는 아무리 뒤져봐도 Apache server에 PHP를 설정하는 것이 대부분 APM(Apache server + PHP + MySQL)이라는 패키지를 설치함으로서 자동으로 설정하는 법은 많지만,
수동으로 설치하는 것은 없기에 이 포스트를 씀으로서 CGI 웹프로그램을 하려는 이들이 처음 자신의 컴퓨터에 세팅을 할 때 도움이 되길 바라는 마음에서 이 글을 씁니다.

1.Apache 설치하기

일단 Apache 서버를 다운받습니다. Apache 서버는 SSL기능을 포함한것이든 아닌 것이든 개발자의 의도에 맞게 다운 받습니다. Installer버전을 다운 받는 것을 추천합니다.(추천의 의미는 별로 없지만, 아파치 서버의 경우 수동으로 설치할 필요가 없다. 그냥 간단한 설치 방법을 추천하는 바이다.)

Apache.org 사이트

Apache.org 사이트


아파치 서버에 갑니다. HTTP Serever를 클립합니다.
그럼 아래 그림과 같은 화면을 볼 수 있습니다.

아파치 Downlaod 페이지

아파치 Downlaod 페이지


원하는 Release의 Apache서버의 Download를 클릭합니다.
그럼 또 아래와 같은 그림의 페이지가 보입니다.

아파치 Downlaod 페이지

아파치 Downlaod 페이지


위의 그림을 보면 2.2.14버전의 Apache를 다운 받기 위해 클립니다.
(왜 여러번 이런 과정을 거쳐야 Download를 할 수 있는지 모르겠네요;;;;;)
클릭하면 화면내에 아래 화면으로 가게 되어있습니다.

아파치 Downlaod 페이지

아파치 Downlaod 페이지


그리고 *.msi로 자동 installer로된 버전을 다운받습니다. 빨간색으로 태두리 쳐있는 것은 SSL기능을 뺀것이고, 그 바로 아래 OpenSSL기능을 추가한 것입니다. 뭐 취향대로 받으시면 되겠습니다. 일반 적인 경우 필요없겠지만, Script 인증을 한다거나 Https프로토콜을 사용할 일이 있으면 SSL기능이 추가된 버전으로 다운 받아 설치해야 하는 것으로 알고 있습니다.

아파치를 다운 받음

아파치를 다운 받음


그리고 이제 설치 합니다. 원하는 곳에다가 설치하시면 됩니다. 저 같은 경우에 예전 개발일을 했기 때문에, Tomcat이 설치 되어 있습니다. Tomcat을 설치할 때 다른 Server을 설치할 것을 고려해서 C:\inet이라는 폴더를 만들었고, 이제는 이곳에 Tomcat, Apahce, PHP를 설치 다운 받아 설치했습니다.


2.PHP설치하기

PHP는 CGI프로그램을 하기 위하여 중요한 프로그램입니다. 저에 생각에 아주 가볍고, 많은 기능을 재공하는 프로그램이라 생각합니다.(사실 JSP의 JAVA는 좀 무거운 감이있죠^^)

저는 조금 잘못알고 있었던 것이 Apache를 설치하면 PHP기능이 당연히 된다고 생각했습니다. 아주 멍청한 생각이었죠. 어찌보면 저의 부족한 면이라고 생각합니다. 참 이바닥을 모르는 거죠. 그런데 문득 APM이 생각이 났습니다. Apache와 PHP, MySQL의 약자인 APM에서 PHP가 Apache와 별개라는 것을 깨닫게 된거죠 그래서 www.php.net을 찾아서 Download하여 설치 하였습니다.

여기서 한가지 먼저 일러 둘 것은 PHP프로그램을 받을 때에는 installer버전을 받지 마시고, Zip파일로 된 녀석을 받아 원하는 곳에다 압축을 풀어두야 한다고 말하고 싶습니다. 그 이유는 installer버전에는 php5apache2_2.dll파일이 PHP파일 내에 설치되지 않습니다.(처음에 installer버전을 다운받았는데 php5apache2_2.dll파일을 apache서버내의 http.conf에 설정해줘야 한다고 해서 찾아 보았지만 없더군요. 해서 Zip버전을 받았는데 Zip버전에는 php5apache2_2.dll파일이 있더군요)

이제 이 PHP를 받아 볼까요?

PHP Downlaod 페이지

PHP Downlaod 페이지


위의 차시트에 가면 Download라는 항목을 클릭합니다. 그러면 아래와 같은 화면이 보입니다.

PHP Downlaod 페이지

PHP Downlaod 페이지


위에서도 이야기 했지만 Zip버전으로 다운을 받습니다. 저 같은 경우에는 C:\inet밑에 Apache, Tomcat, PHP를 설치해 두었습니다. PHP는 굳이 설치할 필요가 없습니다. 그냥 다운받은 Zip을 원하는 곳에 앞축을 풀면됩니다.

PHP를 다운 받음

PHP를 다운 받음


3.Apache서버에 PHP기능 추가하기

아래는 나의 컴퓨터 세팅이다.
나는 Web Application Server(이하 WAS), Web Server, PHP를 "inet"라는 폴더를 C:\ 밑에 만들어 한곳에
모아 두었습니다. 뭐 이유는 관리하기 쉽게 하기위해서 입니다.(사실 프로젝트를 하다가 보면 경로를 적어야 할 때가 있는데 "program files" 폴더 밑에 있음 경로잡기도 모하고 program files 폴더는 중간에 공백문자도 있고해서 좀 불안 합니다. 해서 따로 관리하는 것이지요, 왜 이렇게 세팅했을 까? 의도가 궁굼하더라도 걍 취향이구나 생각해주세요^^)

%SERVER_HOME%

%SERVER_HOME%


아래는 위의 "PHP"폴더의 내용 입니다. Zip파일로 받은 PHP 프로그램은 별도로 설치 하실 필요는 없습니다. 단순히 아래 밑줄친 "php5apache2_2.dll" 파일이 있는지 확인합니다. 이 파일을 Apache 서버에 세팅을 해줘야 PHP기능이 Apache 서버에서 작동을 합니다.

%PHP_HOME%\

%PHP_HOME%\


이제는 Apache Web Server가 설치 되어있는 곳의 "conf" 폴더 아래 httpd.conf 파일을 엽니다.

%APACHE_HOME%\conf

%APACHE_HOME%\conf


다음을 "httpd.conf"파일을 추가합니다.

[code javascript]     .
    .
    .
    .
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
    .
    .
    .
    .
    .
#아래 LoadModule php5_module 부분을 그대로 추가 합니다.
LoadModule php5_module "C:/inet/PHP/php5apache2_2.dll"[/code]

그리고 그 아래 다음을 또 추가 합니다.

[code javascript]#이코드는 URL에 *.php라는 확장명을 주면 어떻게 처리할지 설정해 주는 것입니다.
AddType application/x-httpd-php .php .html[/code]

그리고 마지막으로 "php.ini" 파일이 있는 곳을 지정해 줍니다.

[code javascript]# configure the path to php.ini
PHPIniDir "C:/inet/PHP/"[/code]

4.TEST 하기
PHP Test page

PHP Test page


위 그림은 아래 php코드가 apache 서버를 통해 파싱되어져 나온 그림입니다.

[code php]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=encoding">
<title>PHP web program</title>
</head>
    <body>
    <p>This page test PHP web program</p>
    <?php
      print("Hello I'm Choi Jin Wook This page PHP test");
    ?>
    </body>
</html>[/code]

5.마무리

MySQL을 제외한 Apache에 PHP기능을 추가하는데 많은 도움이 되었길 바라며, 궁굼한 다른 사항들은 댓글을 남기시거나 메일로 보내주시면 답변을 드리도록 하겠습니다.^^

감사합니다.