윈도우 XP에서 APM 설치기(02)

설정방법은 아파치에 PHP 가 있다는 것을 알려주고 PHP 에게 mysql 을 사용할 것이라는 것을 알려주면 된다. Apache 와 Mysql 은 서로 상관없다. 중간 역할은 PHP 가 알아서 하는 것이다.

=== 아파치 작동 확인 ===

이제, 웹브라우저에 http://localhost 또는 http://localhost:8080 가 보이는지 검사해 본다. 기본적으로 apache2 가 작동중이어야 한다. 작동중이라는 표시는 트레이 아이콘들이 보여있는 곳에서 파란색으로 바뀌어 있어야 한다.

=== PHP 와 Apache 의 결합 ===
이제 아파치에 PHP 가 있다는 것을 알려주어야 한다. 아파치 설정파일은 아파치가 설치된 디렉토리\conf\httpd.conf 를 수정해야 한다. 

두 가지 방법이 있다. CGI로의 PHP를 작동시키는 방법과 모듈로의 PHP를 작동시키는 방법이 있다. 솔직히 두 가지 방법이 뭐가 다른지 모르겠다.
 맨 마지막에 다음 둘중 하나를 집어넣으면 된다. # 표시는 주석으로 인식한다.
----------------------------------------------
#php설정 CGI 방식
ScriptAlias /php/ "C:/tools/apm/php/"
AddType application/x-httpd-php .phtml .html .htm .inc
Action application/x-httpd-php "C:/php/php-cgi.exe"
----------------------------------------------
#php설정 모듈방식
LoadModule php5_module "C:/tools/apm/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/tools/apm/php"
----------------------------------------------
ScriptAlias /php/ "C:/tools/apm/php/" 를 자신과 맞게 고쳐적는다. 당연히 나하고는 많이 다를 것이다. php 가 있는 폴더를 설정해 준다. 그 외 것의 path 도 눈치껏 변경한다. 끝에 공통으로 들어가는 PHPIniDir 이라는 것은 php.ini 가 있는 디렉토리를 지정해 주는 것이다. 두 가지 방법이 있긴 하지만 모듈방식으로 사용해야 나중에 form 에서 method 방식을  post 로 남겨줄 때 받을 수 있다.  내 생각에는 Form 에서 method 를 CGI 방식으로 할려면 GGI 방식으로 설정하는 걸로 보인다. (실험은 안 해봤다. ) 
 폼(Form)에서 두 메소드의 차이점은 Post 방식은 내부적으로 변수가 넘어 가는데 CGI 방식은 주소표시창에 주소를 보면 끝에 php? 하면서 뒤어 붙는 변수와 값들을 볼 수 있다. (둘 다 설정 가능한지는 아직 모르겠다. 실험해 보시길. ) 
(여기서 말하는 폼이란 HTML 을 사용할 때 아이디, 패스워드, submit 이런 거 만들때 처음에 쓰는 이런 것을 말한다. )

이제 아파치를 재 시작시킨다.


그리고 아파치가 설치된 폴더 \htdocs 폴더 안에 phpinfo.php 파일을 만들어 주고 그 파일 안의 내용을

phpinfo();

라고 친다. 웹 브라우저에 http://localhost/phpinfo.php 라고 주소를 준다.(안되면 http://localhost:8080/phpinfo.php)  소스 그대로 나오면 설정이 실패한 것이고, 테이블이 보이면서 php 정보가 나오면 성공한 것이다.


php 를 설정하고 나면 나의 경우 인코딩의 문제가 생긴다. 한국어를 직접 설정해 줄 수 있지만 조금 불편하게 느껴진다.
AddDefaultCharset ISO-8859-1
라고 되어 있는 찾아
AddDefaultCharset euc-kr
라고 고친다. 다시 아파치 재시작.. 이제 잘 된다..

이 정도 까지만 가지고도, html 로 이루워진 웹페이지를 만들 수 있다. 다만 게시판을 만들 수 없다. 게시판을 만들기 위해, 그 데이터가 저장될 공간이 필요하다. 그게 mysql 의 역할이다. 그리고 그 게시판의 틀을 만들어 주고, mysql 의 데이터를 html 로 보일 수 있게 하는 역할은 php 가 한다.

컴퓨터가 부팅을 시작하면 자동으로 apache 와 mysql 이 실행한다. 이 것 수동으로 할려면 제어판->관리도구 안에서 서비스를 찾아 클릭한다. 혹시 그 전에 이걸 실행한 적 있는데라고 생각할 지도 모르겠다. 메신저 스팸을 막기 위해 Messenger 라는 항목을 사용안 함 이라고 해 본사람도 있을 것이다. 여기서는 apache 2 , mysql 을 찾아 수동 설정한다. 그러면 컴퓨터가 부팅 될 때 마다 시작하는 일은 없다. 부팅 될 때 마다 시작시킬려면 자동으로 해 두어야한다.


=== PHP 와 MySQL 의 결합 ===
이번에 느낀것은 확실히 PHP 가 MySQL 과 멀어지고 있다는 것이다. 웬지 SQLite 에 중점을 두는 것 같다. 어차피 난 SQLite 를 더 좋아하니 잘 될 것 같기도 하다. 어째든 설정해 보자. php.ini 파일로 설정해야 한다. 앞 글에서 이 파일에 대해 설명했을 것이다. 설치했으면 이 파일이 이미 존재할 것이고 zip 파일만 푸는 방식으로 했다면 없을 것이다. 이럴 때는 php.ini-dist 나 php.ini-recommended 를 복사해소 php.ini 파일로 만든다. (원칙적으로는 php.ini-recommended 로 해야 보안에 강하다. 그러나 작동이 잘 안해서 가끔 짜증이 난다. 어차피 난 공부용이니까 php.ini-dist 를 사용했다. ) mysql 이 사용할 수 있도록 설정해야 한다. extension_dir 를 찾아 php 폴더및 ext 디렉토리 표시를 해준다.
extension_dir = "C:/tools/apm/php/ext"
그리고 ;extension=php_mysql.dll 라는 곳을 찾아 주석 표시를 제거한다. (주석은 세미콜론 ; 이다. ) 앞으로 다른 확장을 사용하려면 여기서 주석만 제거하면 된다. 그 다음 php\libmysql.dll 과 php\ext\php_mysql 을 접근할 수 있게 해야 한다. 보통 path 를 설정해 주면 된다. 단 path 설정시 사용자에 대한 path 가 아닌 전체 path(환경설정 대화창에서 아래부분에 위치한 곳)을 설정하고, 설정후 재부팅해야 적용된다. 그 전에는 절대 안된다. 아무래도 서비스를 이용한 방식이라는 그런것 같다. 재부팅 할 수 없는 상황이라면 이미 path 가 설정된곳(c:\windows\system32 같은 곳)에 두 파일을 복사해 넣는 것도 방법이다.

설정후 설정이 되었는지 확인하려면 위의 http://localhost:8080/phpinfo.php 에서 mysql 항목이 있는지 확인한다. mysql 이라는 글씨조차 없다면 설정이 잘못된 것이다.


최종 수정일 2006. 12. 3
윈도우 xp 에서 APM 설치기 (01)
 아파치 2.2.3     PHP 5.20   MySQL 5.0.27

인터넷 상의 APM 설치에 관한 자료가 많다. 근데, 대부분 오래된 자료이거나 리눅스 중심이다. 그래서 너무 많이 고생했다. 지금은 윈도우 XP 에 이 것들을 깔아 두고 있지만, 결국 리눅스쪽으로 가야 한다. 지금은 단순한 연습 용도 밖에 안된다.

내가 PHP 를 배운 것은 달랑 책 한 권 읽어본것 뿐인데... 처음에는 이런 프로그램도 있냐 했다. 난, 스크립트 언어를 제대로 이해하지 못했던 것 같다. C , C++ , JAVA 같이 자료형이 분명하지 않고, 웬지 모르게 언어자체가 약해보이고 등등등.

스크립트 언어는 스크립트 언어 답게 사용해야 될 것 같다. 자료형에 너무 연연하지 말고, 언어의 장점을 최대한 살려 유연하게 만들어 나가야 될 것 같다. 리눅스는 일반적으로 처음 깔때 그냥 알아서 다 깔아두면 편리하므로 설치하는 수고를 덜을 수 있다고 생각한다. 그냥 설정 같은 거나 참조하면 될 것 같다. 새로운 버전을 깔 때는 문서를 잘 보기만 해도 될 것 같다. 윈도우는 문서가 너무 적어 고생을 많이 했다. 리눅스에서 깔도 그냥 rpm 으로 깔 면 될 것 같은데. t 소스로 설치하기는 더 어려울 것 같고.
어째든 리눅스는 문서가 잘 정리되어 있다. 한글 자료가 궁금하면 kldp.org 에서 찾아볼 것.

사이트
apache ::
본 사이트 : http://www.apache.org/
한 국 : http://www.apache-kr.org/

mysql ::
본 사이트 : http://www.mysql.com/
한 국 : http://www.mysqlkorea.com

php ::
본 사이트 : http://www.php.net/
한 국 : 없음 그러나 http://phpschool.com 이라는 강력한 컴뮤니티 사이트가 있다.  
php 한글 도움 말 : http://kr.php.net/manual/kr/index.php

도움말 사이트 : 웬만한 도움만은 그 사이트 내 document 안에있다. 영어가 부담스럽다면 밑의 한국사이트를 이용하는 것도 좋은 방법이다. 메뉴얼을 한국말로 번역해 놓았다. 설치하다가 막히는 부분이 있다면 곧 document 나 help 문서를 이용해라.


내가 설치했던 프로그램의 버전
 참고로 개인적을 프로그램을 설치하는 것을 매우 싫어한다. 내가 모르는 장소에 파일이 있을지도 모른다는 생각때문이다. 그러나 많은 부분에서 설치되는 프로그램을 이용했다. 많은 부분을 자동화 할 수 있다.


apache : apache_2.2.3-win32-x86-no_ssl.msi 
(확장자 msi 는 리눅스이 rpm 처럼 수정, 삭제 등의 관리 기능이 들어 있다. 설치없이 zip 파일을 이용하려 했으나 너무 어려웠다. )

MySQL : mysql-5.0.27-win32.zip (풀면 안에 인스톨러가 들어있다.)
MySQL GUI Tools :(mysql-gui-tools-noinstall-5.0-r6-win32, 파일이름대로 설치없이 풀어서 사용했다. 설치 버전도 따로 있다,) MySQL 4.0 대 버전에서 winmysqladmin 과 트레이바[시계옆 아이콘이 있는장소]에 신호등 모양으로 MySQL 서비스를 실행하고 종료하는 프로그램이 MySQL과 같이 들어 있었다. 그런데 이제는 편하게 운영하려면 이 툴을 설치해야 한다.
php : PHP 5.2.0 zip package  (설치 필요없이 zip 풀어서 사용가능함. 설치하게 된다면 웹서버부분에 자신의 웹서버에 맞는 것을 꼭 지정해 줄것. 안그러면 설정이 복잡해 질 것이다. 나의 경우 설치파일을 이용하려고 했으나 내 컴퓨터 이상인지 아니면 php 에서 제공한 설치프로그램이 이상한 것이지 설치하다가 설정부분에서 중간에 에러를 낸다. 내생각에는 5.2.0 이라서 그런거 아닌지 모르겠다. 뒷 번호가 올라가면 고쳐질 거라 생각된다. )


설치 순서.
1) mysql -> MySQL GUI Tools 5.0
2)  아파치를 뭔저 깔아야 하는지 PHP 를 먼저까는지는 상관없다. 다만 모든것을 설치파일로 해결할려면
아파치 -> PHP 로 까는게 좋다. 이유는  PHP 를 설치하면서 웹서버 설정을 어느정도 자동으로 해 주는 것 같다. Php 를 설치파일로 설치할 때, 아파치의 설정파일이 있는 폴더를 요구한다.

1), 2) 는 독립적인 순서이다.

내가 프로그램을 설치한 디렉토리 C:/tools/apm/ 모두 이 한곳에 넣을 예정이다. 이 하위폴더 php, apache, mysql 로 폴더(디렉토리)를 만들어서 설치할 것이다.


==== MySQL 설치 ===
---설치파일을 이용할 때 ---
MySQL 이 버전업 하면서 설치하는게 까다로워졌다. 설치 되로 따라가서 설치하면 설치는 크게 문제가 없다. 중간에 root 비밀번호를 설정하는 부분이 나온다. 잊어버리지 말고 기억해야 하니까 자신이 매우 간단한 1234 나 잘 아는 것으로 설정한다. (나중에 변경가능하다. )
설치가 끝나고 나면 설정위자드가 작동한다. 이 프로그램으로 mysql.ini 을 어느정도 자동적으로 만들어 주는 것 같다. 나중에 설정을 다시 바꿀 때 다시 이 설정위자드를 실행시킬 수 있으니 너무 걱정하지말고 대충 설정하면 된다. (나중에 분명히 한글 인코딩[UTF-8과 euc-kr 설정 때문에 다시 설정할 일이 분명히 있을 것이다. ) 중간에 자세히 설정하는 부분과 대략적으로 설정하는 부분 2가지 중 선택하여 설정하라고 한다. 처음에는 까는게 목적이니 대략적인 방법으로 설정하는게 좋을 것 같다. 세밀히 설정하려면 정신없다.

설치후, 제어판 -> 관리도구 -> 서비스 프로그램을 열어보면 mysql 이 서비스로 등록된것을 볼 수 있다. 이 서비스가 프로그램 실행할 때 자동으로 실행한다. 이게 싫다면 자동을 수동으로 고친다. 다시 서비스 시작하려면 여기 들어와서 mysql 을 시작시켜든지, 콘솔창에서 net start mysql 을 치면된다. (반대는 net stop mysql 이다. ) 이게 귀찮다면 batch 파일로 만들어 놓아도 좋을 것이다. 더 좋은 방법은 MySQL GUI Tool 을 이용하는 방법이다. 이 것은 그 부분에서 계속 소계한다.

--- zip 파일을 풀어서 사용할 때 ---
솔직히, 인스톨해 사용하기를 권한다. 그래서 설정프로그램도 이용할 수 있기 때문이다. 나중에 손으로 ini 파일을 수정해야 한다. (물론, 인스톨해 사용해도 일일이 ini 파일 수정해서 옵션을 고쳐야 할 것이다. )
만일 zip 파일로 된 프로그램을 그냥 풀어서 사용하는 방식으로 사용한다면 몇가지 설정이 필요하다. 프로그램을 처음으로 실행시키기전 root password 를 잡아 주어야 한다. bin 폴더및 mysqladmin 이란 프로그램을 이용한다. 당연히 콘솔로 들어가야 한다.

C:\tools\apm\MySQL\bin> mysqladmin -u root -p password new-password
를 실행하면 예전 password를 넣어달라고 합니다. 당안히 없으므로 그냥 엔터. 그 다음에는 자신이 원하는 패스워드를 집어 넣으면 됩니다.

편하게 사용하려면 제어판->관리도구-> 서비스에 mysql 에 서비스를 등록시켜서 사용해야 편할 것이다.
C:\tools\apm\MySQL\bin> mysqld --install 나 mysqld_nt --install 을 이용한다. (당연히 윈도우 xp 에서는 뒤에 nt 가 붙은 것을 사용해야 할 것이다. ) 서비스에서 삭제는 프로그램이름 --remove 을 실행한다.

설치한 것과 마찬가지고 서비스 시작, 중지는 net start mysql, net stop mysql 을 이용해도 되고 MySQL GUI Tool 을 이용해도 된다.


=== MySQL GUI Tools 5.0 ===
zip 파일그냥 풀어서 사용하면 된다. 가장 핵심적인 프로그램은 MySQLSystemTrayMonitor.exe 이다. 앞에서 mysql 을 잘 설치했다면 자동으로 설정이 잡힌다. (mysql 이 관리도구->서비스에 설정되어 있어야지 제대로 실행될 것이다. )


리눅스에서는 알아서 하길. 정말 문서 많았다. 좀 어렵더라도 영어로 보면 됨. 그것도 어려우면 새로운 리눅스 패키지 버전을 설치함.


mysql 에서의 설정파일은 windows 폴더 밑의 my.ini 파일이다.


--- apache 설치 ---

설치파일을 누르다 보면 Network Domain ,server name, Email 적는 곳에 있으면 적고 나 처럼 실험용으로 쓸려면 localhost, localhost, 메일 주소 를 적는다. 나중에 변경가능할 것 같은데.. 그래도 잘 적어보자. 그 다음 폴더지정하는 곳에는 나 같은 경우는 C: tools\apm\apace 로 잡았다.
 
 윈도우즈 NT 같이 서버기능이 추가된 경우 이 apace 실행하는 방법이 2가지다. 서비스를 이용하거나 콘솔을 이용하는 방법이다.  윈도우즈 9X(95,98) 같은 버전은 콘솔로 시작하는 방법 밖에 없다.  왼쪽 맨아래 시작버튼에 아파치를 시작하는 두 가지 방법을 선택하여 시작할 수 있다. 당연히 서비스를 사용하는 방법이 더 편하다. 

  콘솔로 시작하는 방법은 왼쪽 맨 아래 시작버튼을 Apache HTTP Server 2.2.3 -> Control Apache Server -> Start Apache in Console 를 시작하면 된다. 서비스로 하는 방법은 http://httpd.apache.org/docs/2.2/platform/windows.html#winsvc 를 참조하라. 그곳에는 apache 라고 되어 있는데 실제로는 httpd 이다. 
  서비스를 등록하랴면  httpd -k install  라고 콘솔창에 쳐야한다. 물론 그 httpd.exe 파일이 있는 디렉토리로 옮긴후 저 인수를 주어서 실행해야 한다.

 서비스로 시작하는 방법으로 실직적으로 이용하려면 시작 버튼 -> Apache HTTP Server 2.2.3 ->  Monitor Apache Servers 를 실행해서 이용한다. 
트레이에 보이는 깃털 아이콘이 아파치에 관한 것이다. 실행, 중지 같은 것은 눈치껏 하면된다.

=== php 설치 ===
 설치 파일을 이용하면 서버 종류를 물어보는 항목이 있다. apache2 를 선택한다.
 
 zip 파일을 그냥 풀어서 실행하는 경우 윈도우즈가 설치된 디렉토리(보통 C:\WINDOWS)에 php가 설치된 디렉토리에 있는 php.ini-dist 파일을 복사하여 이름을 php.ini 파일이라고 고친다. 이게  PHP 설정파일이다. 나중에 PHP 에서 뭔가 설정할게 있으면 이파일로 하면된다. 

이제 설치는 다 끝났다. 그러나 아직 설정이 남아있다.

최종 수정일 : 2006. 11. 23

 이 글을 처음 적을 때와 지금과 변화가 많아 다시 수정했습니다.
이 갈래(APM + Web) 로 올라온 글을 새로 나온 Php5, 아파치 2를 이용한 것으로 고쳐서 다시 작성하려고 한다. 그런데, 내가 예전에 한 대로 MySQL 을 적용해야 하는하나?? MySQL 이 듀얼라이센스 정책을 사용하는데, 이게 너무 복잡하다. 
 GPL 프로그램의 경우 GPL 을 적용받는 MySQL 을 사용하면 상용프로그램을 만들어도 상관없는지, 싱용이면 GPL 이라도 돈을 내야 하는지 복잡하다. 알기로는 GPL 로 만들면 상용이라도 상관없는것 같은데, 이게 언제 바뀔지 모르겠고(물론 새 번전 MySQL을 사용안 하면 되니까.) 웬지, QT 같이 거부감이 생긴다. 

 우선 공부하는 셈치고 MySQL 을 사용해서 예전글을 다시 정리하려고 한다. 조금 거부감이 생기긴 한다. BSD를 적용받는 PostgreSQL  이 더 좋을 것 같다. SQLite 도 좋겠디만 너무 가벼워 보인다. (SQLite 가 웹에서 사용하기에는 좀 그렇다. 물론 우리나라 사람이 조금 좋게 만들어 놓은 DBMS 기능이 있는 SQLite 는 모르겠다. )