왜 AP 인가?
일반적으로 APM 이라 부르는 것은 apache, php, mysql 을 통칭하는 말이다. 하지만, 여기서는 AP 이다. 그렇다. mysql 이 빠졌다.
이 문서는 내 노트북에 설치되어있는 windows 2000 에 모니위키를 설치하는 것을 목적으로 한다. 물론 모니위키에서 제공하는 웹서버를 이용할 수도 있겠지만, 개인적으로 사용해본 결과 만족할만한 수준이 못되었다.
그래서 결국 apache 웹서버를 직접 설치하는 방법을 택했다.
준비운동하기
우선 가장 최신버전의 apache 와 php 를 다운로드 받는다. 주소는 아래를 참고하기 바란다.
현재를 기준으로 가장 최신버전은 각각 1.3.33 과 4.3.9 이다. 같은 버전이지만, 파일이 여러개가 있으므로 자칫 혼동이 될 수도 있다.
각각 apache_1.3.33-win32-x86-no_src.msi 와 PHP 4.3.9 zip package 를 받았다. php 의 경우 zip package 를 받도록 한다.
이제 본격적으로 설치해보자!!
아파치 설치하기
윈도의 가장 좋은 점이라고 하면, 바로 컴파일과정이 필요없다는 것이다. 이 것은 다른말로, 설치가 쉽다는 얘기도 된다. 앞에서 받은 인스톨 파일을 실행하면, 아주 낮익은(?) 프로그램 설치창이 뜬다. 언제나 그렇듯 'Next' 버튼을 꾸욱 누른다.
여기서는 아파치를 C:\ 아래에 설치하도록 한다. 설치 경로를 묻는 창에서 C:\ 드라이브를 선택한다. 설치를 마치고 나면, C:\ 아래 apache 라는 디렉토리가 생긴 것을 볼 수 있을 것이다. 혹시라도 리눅스에서 아파치를 사용해본 사용자라면, 디렉토리 구조가 동일하다는 것을 알 수 있을 것이다.
설정파일 또한 동일하기 때문에, 전혀 걱정할 필요가 없다.
설정하기
설정의 핵심 파일인 httpd.conf 을 아래와 같이 수정해주어야 한다.
#LoadModule rewrite_module modules/mod_rewrite.so // 주석을 제거한다 ... ... ... #AddModule mod_rewrite.c // 주석을 제거한다 ... ... ... # DirectoryIndex: Name of the file or files to use as a pre-written HTML # directory index. Separate multiple entries with spaces. # <IfModule mod_dir.c> DirectoryIndex index.html index.htm index.php // index.php 를 추가한다 </IfModule> ... ... ... LoadModule php4_module "c:/php/sapi/php4apache.dll" // LoadModule 탭에 추가한다 ... ... AddModule mod_php4.c // AddModule 탭에 추가한다 ... ... AddType application/x-httpd-php .php // AddType 탭에 추가한다
위의 수정 작업을 무사히 끝냈다면, 아파치 설치및 설정은 모두 끝이 난 것이다. 이제는 나머지 php 를 설치해보자!!
PHP 설치하기
앞에서 php 는 .zip 을 받았기 때문에 일단 압축을 풀어야 한다. 나의 경우, 압축을 풀고난 후에 php-4.3.9-win32 라는 디렉토리가 생겼다.
이 것을 C:\ 아래로 이동시키고, 디렉토리 이름을 php 로 바꾼다.
그리고 나서, C:\php\dlls 의 모든 파일을 c:\WINNT\system32 아래로 복사한다.
C:\php\php4ts.dll 파일을 c:\WINNT\system32 아래로 복사한다. C:\php\php.ini-dist 파일을 C:\WINNT 아래에 php.ini 라는 이름으로 바꿔서 복사한다.
이것으로 기본적인 php 설치는 끝났다. 아파치와 마찬가지로, 설치보다는 설정이 훨씬 더 중요하다.
설정하기
아파치에 httpd.conf 가 있다면, php 에는 php.ini 가 있다. 아파치와 마찬가지로 아래의 부분을 수정하면 된다.
;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" include_path = ".;c:\php\includes;c:\php\pear" // 이와 같이 수정한다 ; The root of the PHP pages, used only if nonempty. ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root ; if you are running php as a CGI under any web server (other than IIS) ; see documentation for security issues. The alternate is to use the ; cgi.force_redirect configuration below doc_root = "c:\Apache\htdocs" // 이와 같이 수정한다 ; The directory under which PHP opens the script using /~username used only ; if nonempty. user_dir = ; Directory in which the loadable extensions (modules) reside. extension_dir = "c:\php\extensions" // 이와 같이 수정한다 ... ... ... ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; max_execution_time = 3600 ; Maximum execution time of each script, in seconds // 이와 같이 수정한다 max_input_time = 60 ; Maximum amount of time each script may spend parsing request data memory_limit = 10M ; Maximum amount of memory a script may consume (8MB) // 이와 같이 수정한다 ... ... ... ; Maximum size of POST data that PHP will accept. post_max_size = 10M // 이와 같이 수정한다 ... ... ... ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). upload_tmp_dir= "c:\windows\temp" // 이와 같이 수정한다 ; Maximum allowed size for uploaded files. upload_max_filesize = 10M // 이와 같이 수정한다 ... ... ... default_charset = "euc-kr" // 이와 같이 수정한다 ... ... ... ;extension=php_bz2.dll ;extension=php_cpdf.dll ;extension=php_crack.dll ;extension=php_curl.dll ;extension=php_db.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_dbx.dll ;extension=php_domxml.dll ;extension=php_exif.dll ;extension=php_fdf.dll ;extension=php_filepro.dll extension=php_gd2.dll // 주석을 푼다 extension=php_gettext.dll // 주석을 푼다 ;extension=php_hyperwave.dll ;extension=php_iconv.dll ;extension=php_ifx.dll ;extension=php_iisfunc.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_java.dll ;extension=php_ldap.dll ;extension=php_mbstring.dll ;extension=php_mcrypt.dll ;extension=php_mhash.dll ;extension=php_mime_magic.dll ;extension=php_ming.dll ;extension=php_mssql.dll ;extension=php_msql.dll ;extension=php_oci8.dll ;extension=php_openssl.dll ;extension=php_oracle.dll ;extension=php_pdf.dll ;extension=php_pgsql.dll ;extension=php_printer.dll ;extension=php_shmop.dll ;extension=php_snmp.dll ;extension=php_sockets.dll ;extension=php_sybase_ct.dll ;extension=php_w32api.dll ;extension=php_xmlrpc.dll ;extension=php_xslt.dll ;extension=php_yaz.dll ;extension=php_zip.dll ... ... ... session.save_path = "c:\windows\temp" // 이와 같이 수정한다
여기까지 수정을 마쳤다면, 파일을 저장하고, 아파치를 재시작해보자!! 이제 제대로 연동이 되는지 확인해 볼 차례다. htdocs 디렉토리 아래에 아래의 내용으로 index.php 파일을 하나 생성한다.
<?phpinfo()?>
이제 웹브라우저를 열고, 주소창에 http://localhost/index.php 를 입력해보자!! 어디선가 본 듯한 낮익은 화면이 나왔다면, 성공이다.
덧붙여
모니위키의 설치까지 알아보도록 하자!! 최신버전은 http://kldp.net/projects/moniwiki/ 에서 다운받기 바란다. 현재 윈도용으로 나온 가장 최신버전은 1.0.8 이다.
여기서 특별히 설치과정에 대해서는 굳이 언급하지 않겠다. 관련 문서들을 참고하기 바란다. 설치 경로는 apache 아래의 htdocs 디렉토리로 한다. 설치후에 보면, moniwiki 라는 디렉토리가 생성되었을 것이다. 그리고 나서 웹브라우저로 보면, 그림이나 테마가 모두 깨졌을 것이다.
그렇다. 경로가 안 맞기 때문이다. 윈도용 모니위키의 경우 htdocs 바로 아래로 경로가 잡혀있다. 이것을 해결하는 방법은 두가지이다. 문제가 되는 imgs 와 theme 디렉토리를 htdocs 아래로 끄집어내는 방법, 또 하나는 httpd.conf 파일을 수정하는 방법이다.
여기서는 httpd.conf 파일을 수정하는 방법을 알아보도록 한다.
... ... ... Alias /manual/ "C:/Program Files/Apache Group/Apache/htdocs/manual/" <Directory "C:/Program Files/Apache Group/Apache/htdocs/manual"> Options Indexes FollowSymlinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> ... ... ... # 아래의 두 부분을 추가한다 Alias /imgs/ "C:/Apache/htdocs/moniwiki/imgs/" <Directory "C:/Apache/htdocs/moniwiki/imgs/"> Options Indexes FollowSymlinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> Alias /theme/ "C:/Apache/htdocs/moniwiki/theme/" <Directory "C:/Apache/htdocs/moniwiki/theme/"> Options Indexes FollowSymlinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory>
위와 같이 수정했다면, 아파치를 재시작하자! 그리고 웹브라우저로 확인해보자!!
한가지가 더 남아 있다. 사용하다보면, 분명히 다음 줄에 썼는 데, 저장하고 보면 '한줄로 붙어 나오는 경우' 가 바로 그것이다.
이때는 moniwiki 디렉토리 아래에 있는 config.php 파일을 아래와 같이 수정해준다.
... $auto_linebreak=1; // 1 로 수정한다 ...