| At line 1 added 113 lines |
| [{TableOfContents}] |
|
| !!!PHP Install |
| *[리눅스(fedora, centos)에서 컴파일 설치|PHP_Install_Linux] |
| *[모니위키 설치|MoniWiki_Install] |
| !!! php 환경 설정 |
| {{{ |
| gzip압축 & 버퍼링 관련 |
| output_buffering = Off |
| zlib.output_compression = Off |
|
| ob_start("ob_gzhandler"); |
|
| http://www.whatsmyip.org/mod_gzip_test/ |
| http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=58182&cwin=1 |
|
| http://blog.creorix.com/14 |
|
| 메모리 & 파일 업로드 관련 |
| 파일 업로드 관련 환경 설정 |
| file_uploads = On 파일 업로드 활성화 |
| upload_max_filesize = 20M 파일 업로드 최대 용량 |
| post_max_size = 21M post 요청 최대 용량 upload_max_filesize보다 커야함 |
| max_execution_time = 30 php 실행제한 시간(대용량 파일이 있을경우 늘여 주어야 한다.) 초단위 |
| max_input_time = 60 get, post 업로드 시간 제한 초단위 |
| memory_limit = 24M 최대 업로드 가능 용량 post_max_size 보다 커야 함 |
| |
| http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=55577&page=21 |
| http://www.compuz.com/board/view.php?id=support_1&no=97512&page=27&sort=name& |
| http://infosec.pe.kr/tag/php.ini |
|
| 기타 |
| <?php, <? 둘다 사용 가능 |
| short_open_tag = On |
| |
| //변수 사용과 관련된 옵션 $_GET['aa'] -> $aa 로 사용할수있게 하느냐 마느냐 |
| register_globals = On |
|
| }}} |
|
| !!!PHP finally |
| {{{ |
| PHP에는 finally구문이 없다. |
|
| mysql, ftp 등의 자원을 페이지 호출이 끝나고 나면 자동으로 해제해준다. |
|
| finally구문의 사용용도는 에러발생시 자원을 필히 해제하기 위해서 인데 |
| PHP는 자동 해제이기 때문에 필요가 없다. |
| }}} |
|
| !!!PHP 에러 처리 |
|
| *에러메세지 종류 설명 |
| {{{ |
| Parse error |
| 문법상에서 문제가 있을 경우 발생 |
|
| Fatal error |
| 선언하지 않은 함수를 호출하는 등 프로그램 구조상의 문제 |
|
| Warning: |
| 프로그램상에서 어떠한 작업을 올바르지 수행하지 못하게 될 경우(문법적이 아닌 오류)에 주로 발생 |
| MySQL 오류는 100% Warning 오류가 됨 |
| php.ini의 설정 충돌 문제 |
|
| 프로그램 로직이 죽지 않고 계속 실행 됨 |
| }}} |
|
| *로직 종료 |
| {{{ |
| 아래함수는 php의 로직을 바로 종료 하게 만든다. |
| die(); |
| exit(); |
| }}} |
|
| *에러메세지 재정의 |
| {{{ |
| set_error_handler |
| 에러메세지 발생시 처리 로직을 사용자가 임의로 수정 할 수 있음 |
| 에러 발생시 로그를 기록 한다던지 에러메세지를 이쁘게 보여주고 싶을때 사용 |
| }}} |
|
| *trigger_error |
| {{{ |
| trigger_error("에러메세지 출력1", E_USER_WARNING); |
| Warning: 에러메세지 출력 발생위치 표시 |
| trigger_error("에러메세지 출력2", E_USER_NOTICE); |
| Notice: 에러메세지 출력 발생위치 표시 |
| trigger_error("에러메세지 출력3", E_USER_ERROR); |
| Fatal error: 에러메세지 출력 발생위치 표시 & 프로그램 로직 종료 |
| }}} |
|
| *Exception 예외처리 |
| {{{ |
|
| try |
| { |
| 에러 발생로직 |
| } catch(Exception $e) { |
| print($e->getMessage()); |
| } |
| }}} |
|
| *Exception 예외 발생 |
| {{{ |
| throw new Exception("에러 메세지"); |
|
|
| Exception을 캐취 하지 않았을때는 |
| 예외발생시 로직이 중단되며 예외 메세지와 함수 호출 static trace를 출력해준다. |
| }}} |
|
|