Microsoft Visual C++ 2005 -> VC6
Microsoft Visual C++ 2008 -> VC9
Microsoft Visual C++ 2010 -> VC10
나의 PC와 OS 환경
OS: Windows xp sp3
마우스: 있음
키보드: 있음
OS: FreeBSD 8.3
마우스: 필요없음 (허지만 있음)
키보드: 있음
http://windows.php.net/download/
윈도우버전 PHP를 다운로드 받으려면 VC9, VC6 버전으로 분리가 되어있는 것을 볼 수 있다.
VC9은 Visual Studio 2008에서 컴파일(Compile) 된 버전이고
VC10 은 Visual Studio 2010에서 컴파일(Compile) 된 버전이라는 내용이다.
오랫동안 Php 5.2.17(VC6)를 잘 사용하다가 3rd Party Software의 미래 PHP 지원 버전 소식을 듣고 5.3.x 로 업데이트를 해야만 해서 계약이 되어있는 호스팅회사에 먼저 PHP 버전업을 요청하여서 서버 이전과 함께 PHP 5.3.10으로 버전업을 시키고..., FastCGI 아파치 모듈이 설치된 것을 확인하였다.
(속도가 굉장히 빨라졌음)
호스팅회사의 서버는 유닉스계열이니까 가능하지만 윈도우 사용자 환경에서 개인 컴퓨터의 서버에 아파치나 PHP 가 제공하는 모듈이나 익스텐션...등을 사용자가 원하는대로 다 설치한다는 것은 스스로 소스를 컴파일을 하지 않는한 불가능하다.
(웹사이트 관리하는 사람이라면 되도록 호스팅회사의 서버환경에 맞추는 것이 바람직하다고 생각...)
http://httpd.apache.org/ 에서 제공하는 버전 2.2.22는 PHP5.3.13과 서로 다른 컴파일환경 때문에 호환이 되지 않는다.
>>아파치 설치
https://www.apachelounge.com/download/
httpd-2.2.22-win32.zip을 다운로드 받아서 압축파일을 풀고 Apache2 디렉토리를 그대로 복사하여
C:/ 드라이브에 붙혀넣기 한다 (C:/Apache2)
mod_fcgid-2.3.7-win32.zip 압축을 풀면 mod_fcgid 디렉토리 안에 mod_fcgid.so 파일이 있다.
그 파일을 복사하여 C:/Apache2/modules 디렉토리에 붙혀넣기 한다.
>>아파치 설정하기 C:/Apache2/conf/httpd.conf 파일을 vim 또는 gvim 에디터로 열어서 몇가지를
수정한다.
(메모: 될 수 있으면 윈도우의 notepad는 사용하지 않는 것이 좋다. html 파일이나 php...등의 파일등은
절대로 notepad에서 편집하여 서버에 올리지 말아야한다. 가령 스크립트 파일을 간단하나마 notepad에서
편집하여 utf-8으로 저장을 한다고 해도, 저장하여 서버에 올리면 상황에 따라서 한글...등의 글자가
깨진다. 이유는 notepad는 기본적으로 문서를 utf-8으로 저장한다고 해도 실질적으로는 utf-8+BOM 즉
utf-8 with signature로 저장이 된다. 그런 문서를 웹서버에 올리고 다국언어 호환지원을 맞추어야 하는
경우 한글...등이 깨짐 현상이 일어난다.
utf-8의 기본은 utf-8 without signature가 되어야 한다.)
35-> ServerRoot "c:/Apache2"
46-> Listen 80
129-> LoadModule fcgid_module modules/mod_fcgid.so (삽입)
#LoadModule php5_module "c:/php/php5apache2_2.dll" (만약 php를 모듈로 사용할 경우)
130번째 줄 정도 LoadModule...등이 끝나는 아래에 삽입
<IfModule fcgid_module>
AddHandler fcgid-script .php
FcgidWrapper "C:/php/php-cgi.exe" .php
IPCConnectTimeout 20 (각자의 입맛에 맞게 설정하면 됨)
IPCCommTimeout 300 (각자의 입맛에 맞게 설정하면 됨
</IfModule>
172-> ServerAdmin admin@localhost
181-> ServerName localhost:80
라인 240 정도
Order allow,deny
SetEnv PHPRC "C:/php"
AddHandler fcgid-script .php
FcgidWrapper "C:/php/php-cgi.exe" .php
Options ExecCGI
Allow from all
라인 259 정도
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
이제 편집한 httpd.conf 파일을 저장한다.
>> PHP 설치
http://windows.php.net/download/ 현재 버전 5.3.13
압축을 풀고 폴더명을 그냥 php로 바꾸고 그 폴더를 C:/php로 붙혀넣기 한다
C:/php/php.ini-development 파일을 같은 디렉토리에 복사, 붙혀넣기 하고
그 파일의 이름을 php.ini 로 바꾼다 (C:/php/php.ini)
php.ini 파일을 vim 또는 gvim으로 열고 몇가지를 수정한다.
라인 521 정도
error_reporting = E_ALL & ~E_NOTICE
라인 786 정도
default_charset = "UTF-8"
라인 823 정도
extension_dir = "C:phpext"
라인 1506 정도
session.save_path = "C:tmp"
(드라이브 C:/tmp 라는 폴더를 만들어야 함)
이상 기본적인 설정이다. 저장한다.
윈도우에서 Start->Run->cmd.exe 실행
위의 명령대로 실행을 하고 아파치가 설치된 디렉토리에서 C:/Apache2/bin/ApacheMonitor.exe을
실행하면 아파치 모니터 화면이 나타난다.
모니터 화면에서 Start를 클릭하고 각자 사용하는 에디터로 문서를 하나 만든다.
문서 안에 다음의 내용을 기입한다.
<?php phpinfo(); ?>
그리고 문서를 C:/Apache2/htdocs/phpinfo.php 의 이름으로 저장한다.
Firefox 브라우저의 주소 넣는 곳에
http://localhost/phpinfo.php 를 넣고 실행하면
PHP가 정상적으로 FastCGI 로 설치된 것을 확인할 수 있다.
아래의 링크를 클릭하면 모듈과 FastCGI 메모리 사용 차이와 속도 차이를 비교하는데 도움이 된다.
http://www.apachelounge.com/viewtopic.php?p=10991
아파치라운지 사이트에 아파치를 각각 VC10 과 VC9 에서 컴파일 된 것을 제공하고 있다.
VC9 으로 컴파일 된 것을 테스트하였는데 MySQL 서버와 충돌을 일으키면서
Incorrect string value: 'xF4x80x80xB9Bu...' 다음과 같은 메시지가 계속 발생하였다.
Charsets Encoding 문제가 계속 생겨났다.
원인을 알 수 없지만....
VC10 으로 컴파일 된 버전을 권장한다.
이상은 기본적인 설정 방법이다.
사용자마다 아파치 웹서버를 설정하는 방법이 다 다르겠지만
Virtual Host 디렉토리를 아주 쉽고 유용하게 활용하는 방법을 알리고자
Apache2 디렉토리에 기본적 설정만 했다.
PHP APC (Alternative PHP Cache) Extension 은 같은 버전을 몇군데서 다운로드 받아서
실행을 해 보았는데 컴파일 환경때문인지 계속 충돌이 생겼다.
내가 사용하는 호스팅회사는 APC Extension을 Virtual Hosting 서버나 Dedicated Server 가 아니면
지원을 하지 않는다.
(Cache 를 이용한 대용량 Traffic의 활성...등과 관련이 있기때문에 호스팅회사의 입장에서 이해가 간다)
Virtual Host 서버나 Dedicated Server는 한달 사용료가 $250.00 정도
각자의 웹사이트에서 수입이 $1,000 정도 발생이 되어야지 사용가능한 얘기다.
아래의 사진은 FreeBSD에서 소스를 컴파일해서
똑 같이 Apache2.2.22, Php 5.3.13, FastCGI, APC를 설치하였을 경우다.
Note:
텍스트 에디터는 vim 또는 gvim(무료), EditPlus (상용), NotePad++(무료), EmEditor(상용)...등을 권장함