웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP 혼자 공부하기 - 1 :: 준비물
2003.04.09 14:02
http://www.mysql.com/http://www.php.net/PHP 배우려는 분들 많죠?
저도 PHP를 배운지는 그다지 오래되지 않은 것 같네요... 다만, 그전에 C라는 언어를 미리 접해봤기 때문에 조금은 쉽게 접근할 수 있었던 것도 같습니다. 뭐... 그래도 초보인 것은 마찬가지지만요. ^^;; 언어를 배운다는 것은 참 흥미롭고 좋은 일이지만, 어떤 때에 따라서는 꽤 돈이 많이 드는 일이기도 합니다. 그렇다고 간단하게 자신에게 필요한 몇가지를 만들기 위해서 학원에 돈을 부을 필요는 없잖아요? (책에는 부어도 됩니다...-_-;;)
대게 언어란 어느 수준을 벗어나면 혼자서 공부하며 득도(?)하는 것이 좋다고 생각하고 있는데, 그 뒷부분까지 누군가 이끌어주기를 바라는 사람들이 많더라구요. 그래서 이 강좌를 시작합니다. 혼자 공부하는 법을 조금이라도 아셨으면 해서... ^^ 어쩌면 이전의 강좌들과 내용이 겹칠지도 모르겠습니다만, 제 강좌에서 눈여겨 보실 부분은, 제가 강좌 끝머리에 남겨주는 과제비스무리한 부분을 혼자서 해결하는 법, 그리고 그걸 해결하기 위해서 제가 어떤 걸 공부하라고 강좌에서 말했나...하는 것입니다. 제 실력이 미진해서 어디까지 알려줄 수 있을지는 모르겠지만, 가능한한 열심히 올려볼께요.
자... 서론이 길었습니다.
서론과 강좌계획만 즐비한 이전의 강좌 첫 글들이 마음에 안들었기 때문에 여기서 서론을 접고 준비물을 링크합니다.
## PHP매뉴얼(영문, 윈도우 도움말 형식)
http://www.php.net/distributions/manual/php_manual_en.chm
## PHP매뉴얼(한글, 윈도우 도움말 형식)
http://www.php.net/distributions/manual/php_manual_kr.chm
가능하다면 조금 어렵더라도 영문판을 보라고 권하고 싶습니다만(영문판 업그레이드가 더 잘되고 나중에 도움이 더 많이 됩니다), 너무 힘들 것 같다...라고 한다면 우선은 한글판으로 시작해보시는 것도 권장합니다. 단, 저는 영문판을 기준으로 설명드립니다.
링크중 첫번째는 php.net 으로 PHP를 배포하고 지원하는 사이트입니다. 매뉴얼도 여기에서 얻을 수 있죠. 두번째 링크는 mysql.com 으로 MySQL을 배포하고 지원하는 사이트입니다. 나중에 SQL을 공부하게 될 때, 이곳에서 매뉴얼을 받고 몇몇 필요한 정보들도 가지고 올 것입니다. ^^
## WinAPM(리사파파 최소버전)
http://www.nzeo.com/subFile/files/winapm.exe
PHP를 지원하는 계정을 가지고 있다면 좋겠지만, 그렇지 않다면 바로 위에 링크한 WinAPM을 다운받아서 설치하시기를 권장합니다. 설치 장소는 C:usr 에 하시는 것이 번거로움을 피할 수 있어요. 만약 APM이 깔려있거나 그냥 PHP가 지원되는 계정에서 하겠다는 분은 안하셔도 됩니다.
APM에 대한 설치는
http://www.nzeo.com/subFile/winapm.html
를 참고하세요.
그럼 이제 PHP를 혼자 공부하기 위한 준비물이 다 된 것 같네요. ^^
저도 PHP를 배운지는 그다지 오래되지 않은 것 같네요... 다만, 그전에 C라는 언어를 미리 접해봤기 때문에 조금은 쉽게 접근할 수 있었던 것도 같습니다. 뭐... 그래도 초보인 것은 마찬가지지만요. ^^;; 언어를 배운다는 것은 참 흥미롭고 좋은 일이지만, 어떤 때에 따라서는 꽤 돈이 많이 드는 일이기도 합니다. 그렇다고 간단하게 자신에게 필요한 몇가지를 만들기 위해서 학원에 돈을 부을 필요는 없잖아요? (책에는 부어도 됩니다...-_-;;)
대게 언어란 어느 수준을 벗어나면 혼자서 공부하며 득도(?)하는 것이 좋다고 생각하고 있는데, 그 뒷부분까지 누군가 이끌어주기를 바라는 사람들이 많더라구요. 그래서 이 강좌를 시작합니다. 혼자 공부하는 법을 조금이라도 아셨으면 해서... ^^ 어쩌면 이전의 강좌들과 내용이 겹칠지도 모르겠습니다만, 제 강좌에서 눈여겨 보실 부분은, 제가 강좌 끝머리에 남겨주는 과제비스무리한 부분을 혼자서 해결하는 법, 그리고 그걸 해결하기 위해서 제가 어떤 걸 공부하라고 강좌에서 말했나...하는 것입니다. 제 실력이 미진해서 어디까지 알려줄 수 있을지는 모르겠지만, 가능한한 열심히 올려볼께요.
자... 서론이 길었습니다.
서론과 강좌계획만 즐비한 이전의 강좌 첫 글들이 마음에 안들었기 때문에 여기서 서론을 접고 준비물을 링크합니다.
## PHP매뉴얼(영문, 윈도우 도움말 형식)
http://www.php.net/distributions/manual/php_manual_en.chm
## PHP매뉴얼(한글, 윈도우 도움말 형식)
http://www.php.net/distributions/manual/php_manual_kr.chm
가능하다면 조금 어렵더라도 영문판을 보라고 권하고 싶습니다만(영문판 업그레이드가 더 잘되고 나중에 도움이 더 많이 됩니다), 너무 힘들 것 같다...라고 한다면 우선은 한글판으로 시작해보시는 것도 권장합니다. 단, 저는 영문판을 기준으로 설명드립니다.
링크중 첫번째는 php.net 으로 PHP를 배포하고 지원하는 사이트입니다. 매뉴얼도 여기에서 얻을 수 있죠. 두번째 링크는 mysql.com 으로 MySQL을 배포하고 지원하는 사이트입니다. 나중에 SQL을 공부하게 될 때, 이곳에서 매뉴얼을 받고 몇몇 필요한 정보들도 가지고 올 것입니다. ^^
## WinAPM(리사파파 최소버전)
http://www.nzeo.com/subFile/files/winapm.exe
PHP를 지원하는 계정을 가지고 있다면 좋겠지만, 그렇지 않다면 바로 위에 링크한 WinAPM을 다운받아서 설치하시기를 권장합니다. 설치 장소는 C:usr 에 하시는 것이 번거로움을 피할 수 있어요. 만약 APM이 깔려있거나 그냥 PHP가 지원되는 계정에서 하겠다는 분은 안하셔도 됩니다.
APM에 대한 설치는
http://www.nzeo.com/subFile/winapm.html
를 참고하세요.
그럼 이제 PHP를 혼자 공부하기 위한 준비물이 다 된 것 같네요. ^^
댓글 3
-
Zeriad
2003.04.09 18:18
-
행복한고니
2003.04.09 18:27
일부러 작은 걸 링크시켰는데... -_-;;
6MB 버전은 좀 무거워서요. 공부용으로는 2MB 버전이면 충분합니다. -
김도훈
2003.04.10 20:08
PHP 메뉴얼 구하고 있었는데 잘 받아갑니다.
함수 찾을때 책은 너무 불편했는데 ㅡㅡ;;;
정말 필요한거 구했네요
제목 | 글쓴이 | 날짜 |
---|---|---|
군대간 친구 남은날짜 계산하기 [6] | xacdo | 2003.04.27 |
유용한 일반 함수 모음;ㅁ; [11] | TheMics | 2003.04.23 |
노프레임+프레임없이 접근막기+게시물 링크하기 [3] | teslaMINT | 2003.04.20 |
PHP 혼자 공부하기 - 12 :: SQL문 [6] | 행복한고니 | 2003.04.20 |
데이터베이스, PHP를 만나면「알짜 사이트로 부활!」 [1] | .maya | 2003.04.18 |
[mics'php] 2. PHP 사용 시스템 구축하기 [3] | TheMics | 2003.04.17 |
[mics'php] 1. PHP란? [8] | TheMics | 2003.04.16 |
PHP 혼자 공부하기 - 11 :: 정규식 실전예제 [9] | 행복한고니 | 2003.04.16 |
PHP 혼자 공부하기 - 10 :: 정규식 패턴 문법 [3] | 행복한고니 | 2003.04.15 |
PHP 혼자 공부하기 - 9 :: 정규식 함수 [3] | 행복한고니 | 2003.04.14 |
PHP 혼자 공부하기 - 8 :: 시간다루기 [18] | 행복한고니 | 2003.04.13 |
PHP 혼자 공부하기 - 7 :: 제어문과 함수 [7] | 행복한고니 | 2003.04.12 |
[mics'php] 들어가기 전에 [1] | TheMics | 2003.04.11 |
PHP 혼자 공부하기 - 6 :: 연산자 [7] | 행복한고니 | 2003.04.11 |
PHP 혼자 공부하기 - 5 :: 변수 [4] | 행복한고니 | 2003.04.10 |
PHP 혼자 공부하기 - 4 :: 미리 정의된 변수 [13] | 행복한고니 | 2003.04.09 |
PHP 혼자 공부하기 - 3 :: 변수형 [8] | 행복한고니 | 2003.04.09 |
PHP 혼자 공부하기 - 2 :: PHP의 시작 [9] | 행복한고니 | 2003.04.09 |
PHP 혼자 공부하기 - 1 :: 준비물 [3] | 행복한고니 | 2003.04.09 |
개판 오분전 세션 - 7 [10] | 미친개 | 2003.04.08 |
안녕하세요.
리사아빠입니다.
이 번에는 어느 정도 대부분의 파일을 추가 하여 작성하였습니다.
그리고 최신 버전인 Zend Optimizer 1.3.1도 추가 되었습니다.
PHP 4.2.1 버전도 윈도우에서 안정적으로 작동하는 것같아
새 버전으로 컴파일하여 추가 하였습니다.
http://www.boreal-net.com/pub/winapm/winapm-1.1.exe
APACHE,OpenSSL,Mod_SSL,Mod_PHP,PERL,MySQL 지원
WinAPM 1.1은 제가 자주 사용하는데 필요한 것만 뽑아내서 정리한 파일을
재 컴파일하고 최적화해서 윈 2000 서버에서 스피드가 빠르고 안정적으로 작동이
되도록 만든 것입니다. 실질적으로 상용으로도 사용할 수 있을 정도의 퍼퍼먼스가
나오고 제 컴퓨터에서 한달간 한번도 죽지 않고 계속해서 잘 작동 되고 있었고
아무런 문제가 없없습니다. 윈98/ME/XP에서도 잘 작동이 되고 있다는 소리도
들었는데 저는 이 부분에 대해서 전혀 테스트를 하지 않아 자신을 못합니다.
여기에서 작동되는 프로그램은 제로보드, 웨이보드(PHP/PERL), 테크노트등과
SOURCEFORGE.ORG에서 다운로드 한 대부분의 PHP/MySQL용으로
작성된 프로그램입니다. 그리고 레지스트리를 건드리는 프로그램을 제가 별로
좋아 하지 않아서 레지스트리를 건들지 않아도 정상 작동하도록 설정한 파일을
그냥 압축한 것입니다. 초보용으로 보일지 모르지만 실질적인 내용에 있어서는
어느 정도 중급자용이라고 생각이 되어 집니다.
내용은 아래와 같습니다.
<다운로드>
http://www.boreal-net.com/pub/winapm/winapm-1.1.exe
(WinRAR SelfExtraction Formated File 6.15M)
<설치>
winapm1.1.exe을 풀어서 C:usr 에 설치합니다.
레지스트리를 하나도 건들지 않았기 때문에 SSL이 정상 작동 되려면
환경변수에다 C:usrbin 을 추가해 주어야 합니다.
<사용방법>
C:usr 디렉토리에 있는 ApacheStart 클릭, MySQL Start 클릭 하고
http://127.0.01/와 SSL페이지 https://127.0.01/ 에 접속해서
작동을 확인합니다. 스피드를 특정해보고 싶으면 아파치의
C:usrbinab.exe로 테스트해 주시기 바랍니다.
<APACHE>
버전: Apache 1.3.24
Apache사이트에서 배포하는 버전보다 최고 200배까지 빠른
스피드를 냅니다. 이것은 2.x버전에서는 채용된 MMAP기능이 들어가고
일부 어셈블러 코드로 수정하였기 때문입니다. 2.x 배포버전보다 15%정도
스피드가 떨어지는데 이것은 OpenSSL코드가 들어가고 EAPI 옵션이
추가 되었기 때문입니다. 2.x 배포버전에 OpenSSL코드와 EAPI 옵션을
추가 한다면 동등하리라고 생각됩니다.
<OpenSSL>
버전: OpenSSL 0.9.6c
암호화 부분의 코드를 어셈블러로 콤파일하고 바이너리를 다시 수정하고
해서 사이즈를 최소한으로 줄였기 때문에 암호화 스피드가 상당히
빠릅니다. SSL페이지는 압호화하는데 시간이 걸리기때문에 스피드가
상당히 떨어지는데 MMAP기능과 프로그램 최적화로 인해 배포 버전의
일반 페이지 출력하는 것 보다도 빠르게 SSL페이지를 출력할 수 있습니다.
<PERL>
버전: Perl 5.6.1
이 번에는 기본 펄 모쥴이 대부분 추가 되었습니다. 사이즈는 최적화하여
베포버전보다 상당이 작습니다. SSL서포트용 모드펄을 넣으려고 했으나
아파치 모쥴 관련이 상당량 추가되므로 CGI버전으로 대처했습니다.
<PHP>
버전: Php 4.2.1
SSL을 사용하기위해 EAPI옵션으로 콤파일 되었습니다.
모쥴은 바이너리 사이즈를 최적화하였습니다. 이 번에는
Php 4.2.1용 익스텐션 DLL이 전부 추가 되었습니다.
<MySQL>
버전: MySQL3.23.49
스트링 처리부분은 일부 어셈블러로 콤파일되었습니다. 서버 작동에 필요한
파일만을 넣었습니다. 이 프로그램에서 사이즈를 가장 많이 차지합니다.
200k정도 배포버전의 파일보다 사이즈가 작습니다.
이 번에는 많이 쓰이는 mysql.exe도 추가 되었습니다.
모두 최신버전만을 채용하였고 프로그램 사이즈와 실행스피드에 역점을
두고 수정 하고 컴파일하였습니다. 윈도우98에서는 MMAP기능이
제대로 작동하지 않습니다. 그래서 이 프로그램은 윈도우2000용으로
최적화 되었습니다. 그외 어셈블러 코드가 많이 사용되었기 때문에
486이상의 인텔호환 CPU에서의 사용을 권합니다.
<사용된 툴과 컴파일러 정보>
Cygwin 1.3.10-1
VC++ 6.0(Service Pack 5) 엔터프라이즈 일본어 버전
CL.EXE(C/C++ 컴파일러) 12.0.8804.0
LINK.EXE(링커) 6.0.8447.0
ML.EXE(어셈블 컴파일러) 6.14.8444
MASM.EXE(MASM드라이버) 6.14.8444
MASM32(어셈블러 툴) V7
DMAKE(Perl 메이크용) 4.1
<SSL 사용과 인증서 작성방법>
다음을 코맨드 프롬프트에서 실행하면 됩니다.
cd c:usrbin
openssl
위를 실행하면
OpenSSL>
화면으로 바뀝니다. 그러고 나서 다음을 순서대로 실행하면 됩니다.
OpenSSL> req -config C:usrbinopenssl.cnf -new -out my-server.csr
my-server 대신에 자신의 서버 명 예) www.xxx.co.kr
위의 코맨드를 치면 여러 입력정보를 재촉합니다.
그냥 엔터를 치든지 내용을 입력하면
privkey.pem 와 my-server.csr 가 만들어집니다.
그다음
OpenSSL> rsa -in privkey.pem -out my-server.key
Enter PEM pass phrase:
pass phrase를 입력하면 my-server.key가 만들어 집니다.
그다음
OpenSSL> x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365
하면 my-server.cert 가 만들어 집니다.
그다음
OpenSSL> x509 -in my-server.cert -out my-server.der.crt -outform DER
하면 my-server.der.crt 가 만들어집니다.
그다음
OpenSSL> req -config C:usrbinopenssl.cnf -new -x509 -days 365 -key my-server.key -out my-server.crt
하면 처음과 같이 여러가지를 물어오는데 정보를 입력하면
my-server.crt 가 만들어집니다.
이걸로 CA관계 인증서가 작성됩니다.
그다음
OpenSSL> genrsa -des3 -out ca.key 1024
하면 pass phrase를 두번 물어 옵니다.
그리고 나면 ca.key가 작성이 됩니다.
마지막으로
OpenSSL> req -config C:usrbinopenssl.cnf -new -x509 -days 365 -key ca.key -out ca.crt
하면 처음과 같이 여러가지를 물어오는데 정보를 입력하면
ca.crt 가 작성이 됩니다.
그리고 난후 위에서 작성된 키를 모두
C:usrbinconfssl 디렉토리에 넣어 주면 됩니다.
그다음
C:usrbinconf 디렉토리의 httpd.conf 파일을 열어서
171/172 줄의 다음 정보를 만들어진 키 파일명과 같도록
수정하면 됩니다.
SSLCertificateFile "conf/ssl/my-server.cert"
SSLCertificateKeyFile "conf/ssl/my-server.key"
이것으로 인증서 작성과 설정은 끝입니다.
그외의 정보는 인터넷에서 입수해 주시기바랍니다.
버전업은 1년에 한번씩 딸래미의 나이와 함께 업그레이드 됩니다.
아직 2.x버전의 EAPI/SSL등 추가 옵션의 기능이 너무 불안정
하고 버그가 많이 있어서 실용적인 단계는 내년이나 되어야
어느 정도 신뢰 할 수 있을 것 같군요.
스피드나 동시 접속자 테스트를 해보시면 많이 빠르다는 것을
아실겁니다. 심심하실때 한번 해보시기 바랍니다.
<방법>
먼저 C:usrwww 디렉토리에 용량이 큰 임의의 webbench.jpg
코맨드 프롬프트에서
cd c:usrbin
ab -n 100 -c 10 http://127.0.0.1/webbench.jpg
혹은 파일로 출력할 때는
ab -n 200 -c 200 http://127.0.0.1/webbench.jpg>webbench.txt
하면 됩니다.
그리고 나서
http://www.apache.org/dist/httpd/binaries/win32/apache_1.3.24-win32-x86-no_src.exe
를 설치해서 같은 방법으로 테스트를 해보시면 얼마나 차이가
나는지 아실 수 있을겁니다.
테스트할 때는 서로 다른 아파치를 실행하는것 잊지마시구요...
제 환경(펜티엄II 350 메모리 516메가)에서는 최고 트랜스퍼 스피드가
200배까지 차이가 있었습니다. OS는 윈도우2000(NTFS) 서버 디벨롭퍼 영어 버전입니다.
<ab 테스트>
105KB 이미지 출력
ab -n 100 -c 10 http://127.0.0.1/webbench.jpg
1.3.24(EAPI/MMAP) 8188 KB/SEC (php/ssl이 모듈도 로드된상태입니다.)
2.0.35(아파치 배포버전) 10804 KB/SEC (아무 모듈도 로드되지 않은 상태입니다.)
1.3.24(아파치 배포버전) 439 KB/SEC (아무 모듈도 로드되지 않은 상태입니다.)
위의 것은 이글을 쓰면서 테스트한 결과 입니다.
<매뉴얼>
이 프로그렘의 설명은 제로님이 작성한
http://nzeo.com/subFile/winapm.html
페이지를 참고 하면 이미지로 더욱 더 쉽게 설명되어 있습니다.
<기타>
C:windows 혹은 C:winnt
디렉토리에 이전에 설치했던 php.ini 나 my.ini 가 있으면 실행시
에러가 발생합니다. 이럴땐 다른 파일 이름으로 백업을 해 두던지
파일을 삭제하면 Apach 와 MySQL 의 실행 에러가 없어 집니다.
MySQL:
MySQL 패스워드를 변경하면 실행단축 아이콘인 MySQL STOP에서
오른쪽클릭해서 타겟을 변경해 주어야 MySQL을 Shutdown 시킬 수
있습니다. 그렇지 않으면 Shutdown 에러가 발생합니다.
예)
C:usrbinmysqld.exe --standalone>>
C:usrbinmyadmin.exe --user=root --password=패스워드 shutdown
myadmin.exe은 원본의 mysqladmin.exe 와 같은 파일 입니다.
다른 윈도우용 APM을 설치 했다고 해도 WinAPM1.1을 실행하지
않은 상태라면 시스템에 아무 영향을 주지 않습니다. 제가 소프트를 만들때
다른 소프트에 영향을 주거나 문제를 일으키는 소프트는 절대로 만들 마음이
없기 때문에 이렇게 설정을 해놓은 것입니다. 그대신 이미 다른 APM이 설치되어
있으면 제가 작성한 WinAPM1.1은 기존 설치한 다른 APM에 영향을 받습니다.
영향을 받는 이유와 설명, 회피 방법은 다음과 같습니다,
영향을 받는 이유는 프로그램을 실행할때에 설정 파일을 로드하는 과정이
있기 때문입니다. 로드되는 과정은 일반적으로 우선도가 소프트에 따라
다르지만 대부분이 시스템 디렉토리 그리고 때에 따라서는 레지스트리가
우선됩니다. 시스템 디렉토리라함은 C:windows와 C:windowssystem
그리고 NT/2000/XP계열은 C:winnt와 C:winntsystem32입니다. 혹은
자신이 따로 시스템 디렉토리를 다른 이름으로 설치한 경우에는 자신이
설정한 디렉토리가 됩니다. 그래서 현재 아파치와 MySQL은 일반적으로
C:windows 와 C:winnt에 php.ini와 my.ini 파일이 있는데 이것이
문제가 됩니다. 그리고 레지스트리는 서비스로 실행을 하기 위해서 필요한데
서비스로 실행하지 않으면 실행하는 데는 아무 상관이 없습니다. 단,
다른 윈도우용 APM을 서비스로 실행을 하고 있는 환경에서는 WinAPM1.0를
사용할 수 없습니다. 이때에는 서비스프로세스를 죽여야만 합니다.
위의 내용으로 인해 WinAPM1.1을 다른 APM을 사용하면서 테스트를 하는
경우에는 임시적으로C:windows 와 C:winnt에 있는 php.ini와 my.ini
파일이름을 php.ini.backup와 my.ini.backup 처럼 변경해 놓고 사용하거나
테스트를 해야합니다. 그리고 다른 APM을 다시 사용하고자 할때에는
위의 php.ini.backup와 my.ini.backup 파일이름을 php.ini와 my.ini로
다시 되돌려 주면 됩니다.
WinAPM 1.1에서 서비스로 아파치를 실행 하고자 할때에는 C:usrservice
에서 install 단축아이콘을 클릭 해주고 리스타트 하면 됩니다. 제거할 때는
uninstall 단축아이콘을 클릭하면 됩니다. 그리고 MySQL을 기동과
동시에 자동으로 서비스처럼 운영하려면 C:usr 아래의 MySQL Start
단축 아이콘을 시작메뉴의 프로그램 메뉴에 시작 프로그램이라고 있는데
이곳에 복사해서 넣어 주면 됩니다. 상테 바 프로파티 에서 고급을 선택 하면
프로그램 메뉴 디렉토릭를 볼 수 있습니다. 참고로 영어 윈2000 버전의 경우
C:Documents and SettingsAdministratorStart MenuProgramsStartup
에다 MySQL Start 단축 아이콘을 복사해 주고 재기동하면 서비스처럼
운영할 수 있습니다.
http://localhost/보다 http://127.0.0.1/을 더 권장합니다.
때에 따라서 세큐리티처리나 URL체크가 들어간 프로그램의 경우
http://localhost/는에러가 날 가능 성이 있기 때문입니다.
리사파파 씀