윈도우용 apache 2.4 버전을 설치 하려고 한다.
우선 윈도우용 apache 2.4 버전은
http://www.apachelounge.com/download/
위 경로에서 다운로드 받을수 있다.
아파치 2.0.X 와 2.2.X 버전도 테스트 용으로는 크게 무리가 없지만.
PHP 5.6 버전을 사용하기 위해서는 아파치 2.4를 설치해야 하는듯 하다.
apache 2.2 버전은 phpo 5.4 버전 까지만 지원하는듯 하다.
물론 리눅스는 아닌것 같고 윈도우 버전에서만 그런듯 하다.
한 3일 고생해서 겨우 겨우 깔았다.. 아이고 힘들다...
우선 기본 적으로
Aapche 2.2 와 PHP 5.3 버전의 경우는 윈도우용 설치 파일인 .msi 파일이 존재하여
쉽게 설치할수 있다.
그러나
그 이후 버전부터는 .msi 파일을 지원하지 않는다..
내가 최종적으로 사용한 버전이 딱 저거였다.. 그러니...
PHP 5.6을 사용하려고 용쓰는 작업을 여기에 적어 두기로 한다.
결론부터 말하면
PHP 5.6은 위에서도 말했다 싶이... Apache 2.4 가 아니면 윈도우용은 설치되지 않는다.
자 시작합니다.
http://www.apachelounge.com/download/
위 사이트에서 원하는 Apache 2.4 버전을 다운로드 합니다.
위 사이트 왼쪽 화면에 보시면
VC14, VC11, VC9 등이 표시되어 있습니다.
아파치나, PHP, 등이 비쥬얼C로 만들어지다보니.. 런타임 프로그램이 필요합니다.
이때 필요한 런타임 버전을 표한건데요...
VC11이 무난할듯 합니다.(쓸만한 PHP는 거의 대부분 VC11 인것 같습니다.)
저는 윈도우 32비트 버전으로 다운로드 받겠습니다.
32라고 적힌것 또는 X86 이라고 된것은 32비트 버전이구요.
(php 에서는 Win32 x86이라고 적혀 있습니다.)
(X86은 32비트 64비트 구분이 아닌 다른 의미로 사용될때도 있습니다.)
64라고 적힌건 64비트 버전입니다.
관례 같은거니깐 암기해 두면 좋겠죠? 32비트 버전은 586 이렇게 표기하는 경우도 있습니다.
http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.12-win32-VC11.zip
위 주소에서 다운로드 받으면 됩니다.(오늘자 최신 안정버전 기준)
그리고 위에서 말한 런타임은
http://www.microsoft.com/en-us/download/details.aspx?id=30679
위 주소에서 다운로드 하자 비쥬얼C 2012 런타임이다.(VC11 입니다.)
우선 런타임을 다운로드 받아서 먼저 설치한뒤.
http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.12-win32-VC11.zip
위 주소에서 다운로드 받은 Apahce 2.4 버전의 압축을 풉니다.
압축을 풀어서 들어가보면
Apahce24 라는 기본 폴더가 있을껍니다.(제가 다운받은 버전은 안에 폴더가 있었습니다.)
이걸
C:\ 디렉토리도 복사를 합니다
결론은
C:\Apache24 라는 폴더가 생기는 거죠
윈도우 버전은 저 기본 폴더를 사용하는듯합니다.
자 그럼 설치해 볼까요.
윈도우7의 로고 버튼을 누르고
프로그램 및 파일 검색 란에
CMD라고 입력만 하고 대기 합니다.(입력만 하고 대기 하세요.. 자동으로 찾아 줍니다.)
그럼 자동으로 프로그램을 찾아 줄껍니다.
여기서 바로 엔터키 치지 마시고 기달리면
상단에
프로그램(1)
CMD 라고 나타나는데 여기서 CMD 위에 마우스를 살짝 올리시고
마우스 오른쪽 버튼을 누르시면 관리자 권한으로 실행이 나옵니다.
네 관리자 권한으로 실행을 해주셔야 합니다
그런다음
cd C:\Apache24\bin 이라고 입력하셔서 bin 디렉토리로 이동한 다음
httpd.exe -k install 이라고 입력하면
자동으로 인스톨(설치)가 됩니다.
쉽죠?
아마도 오류 메세지 비슷한게 나올껍니다. 그냥 무시하셔도 됩니다.
서버네임이 없어서 그런 오류가 생기는 것인데.
C:\Apache24\conf\httpd.conf 파일을 열어서
#ServerName www.example.com:80 이라고 되어 있는 것의 앞의 #을 제거해 줍니다.
그리고
httpd.exe -k restart 해보시면 오류 메시지 없이 잘 작동할껍니다.
(이때로 관리자 권한으로 실행되어야 합니다. 앞서 cmd 창 닫으신분들은 다시 관리자 권한으로 실행하세요.)
네 아파치는 다 설치한 것입니다.
작동하는지 확인 하시려
익스플로서나 크롬 주소창에
localhost 라고 입력하시면
It's Work! 라는 화면을 만나실수 있습니다.
자 그럼 이제 PHP를 설치해 볼까요?
PHP도 마찬가지 입니다.
http://windows.php.net/download#php-5.6
위 사이트 주소에서 다운로드 받으면 됩니다.
여기서 다운로드 받으실때는 주의할께 VC11 앞서 설명드린것을 받으시길 권장드리구요.
그리고 하나더
Not Thread Safe 와 Thread Safe 두가지가 존재합니다.
그냥 Thread Safe 모드 받으시길 권장드리구요.
(좀더 자세한 내용은 검색해서 공부하셔도 됩니다만 머리 아프면 그냥 통과)
자 그럼 저는
http://windows.php.net/downloads/releases/php-5.6.10-Win32-VC11-x86.zip
위 주소에서 다운로드 받겠습니다.
다운로드 받아서 압축을 푼뒤
그 폴더 이름을 php56 이라고 변경하겠습니다.
그런다음
이걸 아파치와 같이
C:\php56 에 복사를 하도록 하겠습니다.(이동해도 되구요.)
자 그럼 Apache24와 연동해 볼까요?
여기서 잠깐!!!!!!!!!
앞서 Apache와 PHP를 사용하던 컴퓨터라면 앞서 인스톨 버전을 반드시 삭제 하셔야 합니다.
그리고 조금더 복잡해질수도 있습니다.(제가 그래서 엄청 해맸습니다. ㅠ.ㅠ)
자 그럼 앞서 인스톨이 되었던 안되었던 제거했다 치고 설명 드리겠습니다.
C:\Apache24\conf\httpd.conf 파일을 여세요.
ServerRoot "c:/Apache24"
위 문장을 확인하세요. 안고쳤다면 아마 저렇게 되어 있을 껍니다.
뜻은 저 디렉토리(폴더)에 깔아놨다 뭐 그런뜻입니다.
Listen 80
80번 포트를 기본 웹서버 포트로 하겠다는 뜻입니다.
저걸 만약
Listen 8080 이렇게 고쳤다면
익스플로러나 크롬에서(이후 웹브라우저라 통칭합니다.)
localhost:8080 이렇게 접속하시면 됩니다.
#ServerName www.example.com:80
이렇게 #으로 주석 처리된것을 #을 제거합니다.(앞서 설명 드렸습니다.)
DocumentRoot "c:/Apache24/htdocs"
위 부분을 찾으세요..
저건 html 이나 php 파일이 저곳에 있을꺼라는 뜻입니다. 유식하게 홈디렉토리라고 하구요
여러분들이 웹브라우저에서 localhost 라고치면
c:/Apache24/htdocs/index.html 파일이 보여 집니다.
현재로는 It's Work!라고 나오는 문서죠..
그리고
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
이렇게 된 문장을 찾으세요.
아무것도 입력안하면 기본적으로 보여질 파일명을 지정하는겁니다
위에 말씀 드린것처럼
localhost 라고면 쳐도
http://localhost/index.html 파일이 보이는 이유가 이겁니다.
근데 이걸
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm
</IfModule>
위와 같이 고쳐 두세요.
그럼 아무것도 없이
localhost 라고만 치면
제일 먼저 index.php 파일이 보여지구요. 혹시 그파일이 없다면
index.html 파일이 보여지구요. 그것도 없다면 index.htm 파일이 보여집니다.
잘 보시면 확장자가 php, html, htm으로 서로 다릅니다.
가능하면 꼭 위와같이 설정하세요. 그래야 index.php 파일이 잘 작동합니다.
나머지는 더 공부헤서 손보시기로 하구요.
제일 중요한 부분들 시작합니다.
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
위 두문장을 찾으세요.. 그런다음
AddType application/x-httpd-php .php .inc .bak .old .c
위 문장을 추가해 줍니다.
결론은
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .inc .bak .old .c
이렇게 만들라는 겁니다.
.php .inc .bak .old .c 파일은 php에서 해석해서 화면에 보여 주라는 뜻으로
Apache와 PHP를 연동하는 실제 구문입니다.
그리고 또 중요한 부분
지금 수정중인 httpd.conf 맨 마지막 줄에
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
#PHPIniDir "C:\Program Files\PHP\"
#LoadModule php5_module "C:\Program Files\PHP\php5apache2_2.dll"
#PHPIniDir "C:\php54\"
#LoadModule php5_module "C:\php54\php5apache2_4.dll"
PHPIniDir "C:\php56\"
LoadModule php5_module "C:\php56\php5apache2_4.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
위 문장을 복사해서 넣으세요.
#으로 시작하는건 주석문인것 이제 아시죠?
보시는 바와 같이.
PHPIniDir "C:\php56\"
LoadModule php5_module "C:\php56\php5apache2_4.dll"
요 두줄만 작동하는데요..
php 버전을 바꾸실꺼면 주석처리 하시고 위에꺼 풀어풀어서 적절히 쓰시면 됩니다.
우리는 php 5.6 버전을 C:\php56에 풀었으니깐 저렇게 적는 겁니다.
자 이제 저장을 하겠습니다.
여기서 할일은 마무리 되었습니다.
그렇다고 연동이 끝난것은 아니구요.
이제 제가 삽질한 것은 여기서 부터 시작합니다.
우선
C:\php56\ 폴더로 이동하시면
php.ini 파일을 찾으셔야 합니다.
근데 없을 껍니다.
php.ini-development
php.ini-production
위 두파일이 존합니다.
이중 아무거나 사용하셔도 크게 문제는 없지만
우린 개발자니깐.. 테스트도 해야 하고 해서
개발자용인
php.ini-development 파일을 php.ini 파일로 변경합니다.( 이름바꾸기에서 -development 이글자를 지우라는 뜻입니다.)
자 그럼 파일을 열어 볼까요.
더블클릭하면 자동으로 안열리니깐.. 메모장에서 여시거나 연결프로그램을 메모장으로 지정하시면 되요.
자 이제 따라가면서 찾아 봅시다.
short_open_tag = Off 되어 있는 것을
short_open_tag = On 으로 변경합니다.
쇼트태그 사용하게 해주는게 정신 건강에 이롭습니다.
<?php
?>
정식 태그아닌
<? ?>
이 쇼트 태그 사용 가능하게 해주는것
error_reporting
위 부분을 찾아서
error_reporting = E_ALL 이렇게 되어 있나 확인하세요..
모든 오류를 인정(?) 한다는 뜻입니다. 무시할만한 오류까지 싹 다 보겠다는 거지요.
display_errors 찾으셔셔
display_errors = On 되어 있는지 확인하세요.
모든 오류 메시지를 화면에 보여달라는 뜻입니다.
실 운용서버는 Off 하시는것이 바람직 할수도 있어요 오류 메시지 나올때 경로명이 나와서... 좀 지저분해 보일수도..
위에 모든 에러 다 보이게 해놨으니 미래에 없어질 함수같은것도 막 경고 해주면 귀찮을 수도 있으니 잘 선택하세요.
개발자라면 당연히 On 해서 개발합니다.
;extension_dir = "./" 라고 되어 있은 부분을 앞에 주석 ;(세미콜론) 을 제거하고
extension_dir = "C:\php56\ext"
위와 같이 적어 주세요..(php56은 우리가 설치한 경로 입니다. 딴데 설치 했다면 다르게 적으세요.)
(이거 안하면 엄청 골때립니다. 주의 하세요.)
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
위 문장을 찾아서.. 모두 주석을 제거하거나....
필요한 것만 주석을 제거하세요( ; <-- 세미콜론 제거)
저는 보통
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
extension=php_shmop.dll
이정도 합니다. ㅎㅎㅎ
골치 아프면 다 푸는게 상책이죠, 모든 파일이 로드되면 컴에 이익이 될껀 없지만
그렇다고 컴이 망가지거나 하는건 안니깐...
궁금하시면 공부해서 하나씩 설정하세요.
(지면 관계 및 지식이 짧아서 자세한 설명은 생략... 그래도 알만큼은 대충 알아요 ㅎㅎ)
그리고
;date.timezone =
윗 부분을 찾아서 주석을 제거하고
date.timezone = Asia/seoul
위와같이 아시아 서울을 추가해 줍니다.
영어 뜻과 같이 타임존인데요.. 저걸 안하면 php 5.3 이상부터는 시간 관련 함수 사용하면 워닝(?)이 나옵니다.
화면이 지저분해집니다.
꼭 설정하세요.
그외 나머지는 DB 관련 설명인데요... 그건
mysql 5 버전을 설치하면 달리 설정할 필요도 없이 기본적으로 포트 3306 에 맞추어져 있고 해서 별문제 없습니다.
자 그럼 php.in 파일을 저장합니다.
그런다음
cmd 명령을 입력한뒤 관리자 권한으로 실행
C:\Apache24\bin\httpd.exe -k restart
하면 될것 같지요?
안됩니다... 제가 여기서 또 삽질을 한것이...
저 php.ini 파일은 기본적으로
C:\windows\ 디렉토리로 복사를 해주셔야 합니다.
그리고 앞서 아파치와 php를 설치한 적이 있다면
C:\windows\system32 폴더에까지 복사를 해주셔야 합니다.
보시는 그림과 같이
Configuration File(php.in) path가 기본적올 C:\Windows 로 잡혀 있습니다.
그래서 C:\windows 디렉토리에 복사를 해줍니다.
근데 그 밑에 보시면
Loaded Configuration File 라고 로드된 ini 파일 위치가 나오는데요.. 저게 처음 설치한거라면
C:\windows 라고 나오는데요
저같은 경우
Apache 2.2와 php 5.3을 .msi 파일로 설치한적이 있었는데...
뭐가 꼬였는지
Loaded Configuration File 부분에서 C:\windows\system32 라고 되어 있어서
제가 새로 설치한 php 5.6의 php.ini 파일이 안먹혔던 겁니다.
이걸로 3일을 고생했네요.
결론은... 처음 설치하는 분이면 그냥
C:\windows 디렉토리에 php.ini 파일을 복사하면 되구요.
처음이 아니신분은 가능하면
C:\windows\system32
저기도 한번더 복사를 해주시라는 겁니다.
근데 복사할때 오류가 나거나 하면 그건
현재 Apache 가 작동 중이라서 오류가 날수도 있습니다.
그러니깐
cmd 하셔서(당연히 관리자 권한입니다.)
C:\Apache24\bin\httpd.exe -k stop 하신뒤 (restart 하지마세죠. 가능하면.....)
C:\Apache24\bin\httpd.exe -k start 하시면 잘 될껍니다.
자 이제 연동이 끝났습니다.
이제
index.php 파일 하나 만드시고
<?php
phpinfo();
?>
하신다음 저장하시고
웹 브라우저에
localhost 하고 쳐보시거나
혹시 모으니깐.....(중간에 설정을 빼먹고 하신분들을 위해서)
localhost/index.php 하시면 좀전에 위에 보신 그림 파일과 같이
보라 딩딩한 화면을 보실수 있을 껍니다.
혹시 안되시면 제글을 다시 차근 차근 읽어보세요..
그래도 안되시면 댓글 주시면 제 글이 잘못되거나 빠진거면 수정하도록 하겠습니다.
긴글 읽어 주셔서 감사합니다.
글은 추후 계속 기록해 두겠습니다.