Posted on 2008/09/08 12:59
Filed Under [1] IT 관련/4. Programming

서버의 부하를 줄이기 위한 정적페이지 만드는 함수입니다.
퍼오긴 했는데 출처를 모르겠네요. 출처를 아시는 분이 계시다면
제게 메일 부탁드립니다.

정적페이지 소스 (Language : php)
  1. <?
  2. /*
  3. ## 캐쉬 디렉토리에 해당 디렉토리를 만들어 준다(퍼미션 0777)
  4. ## /cache/main
  5. ## life_time 시간내에는 캐쉬디렉토리에 있는 정적페이지를 보여준다.
  6. ## $is_cache : 캐쉬사용여부
  7. ## $cache_dir : 캐쉬 디렉토리
  8. ## $life_time : 캐쉬 유효시간 (초)
  9. */
  10.  
  11. function ps_cache_chk($is_cache = true, $cache_dir = '../cache',$life_time = 3600)
  12. {
  13.   global $HTTP_GET_VARS,$HTTP_POST_VARS,$HTTP_SERVER_VARS;
  14.  
  15. ## 캐쉬 파일 사용여부
  16. if($is_cache == true && count($HTTP_POST_VARS) == 0){
  17.  
  18. ## 캐쉬페이지 URL
  19. $cache_file_name = $cache_dir.$HTTP_SERVER_VARS['REQUEST_URI'];
  20.  
  21. ## 현재페이지 URL
  22. $url = sprintf("http://%s%s?%s",$HTTP_SERVER_VARS['HTTP_HOST'],
  23. $HTTP_SERVER_VARS['PHP_SELF'],$HTTP_SERVER_VARS['QUERY_STRING']);
  24.  
  25. ## 현재페이지 읽기 위한 URL no_cache=true 추가
  26. $rurl = sprintf("http://%s%s?no_cache=true&%s",$HTTP_SERVER_VARS
  27. ['HTTP_HOST'], $HTTP_SERVER_VARS['PHP_SELF'],$HTTP_SERVER_VARS
  28. ['QUERY_STRING']);
  29.  
  30. ## 파일이 존재하고 시간이 유효한경우
  31. if(file_exists($cache_file_name) && (time()- filemtime($cache_file_name)) < $life_time)
  32. {
  33.   echo "정적 HTML파일을 호출합니다";
  34.   $fp = fopen($cache_file_name,'r');
  35.   if($fp){
  36.     $content = fread($fp,filesize($cache_file_name));
  37.     fclose($fp);
  38.     echo $content;
  39.     exit;
  40.   }
  41. }
  42. else{
  43.   echo "유효시간이 지나 새로운 정적페이지를 만듭니다";
  44.   ## 현재페이지 읽기
  45.   $fd = fopen ($rurl, "r");
  46.   while (!feof ($fd)) {
  47.   $content .= fgets($fd, 1024);
  48. }
  49.  
  50. ## 캐쉬파일작성
  51. $fp = fopen($cache_file_name,'w');
  52. if($fp){
  53.   fwrite($fp,$content);
  54.   fclose($fp);
  55. }
  56. echo $content;
  57. }
  58. } ## is_cache end
  59. }
  60. $is_cache = ($no_cache) ? false : true ;
  61.  
  62. /*
  63. $is_cache 가 true 경우 캐쉬파일을 읽어옮
  64. $is_cache 가 false 경우 캐쉬파일을 새로작성
  65. */
  66.  
  67. ps_cache_chk($is_cache,"../cache",60);
  68. ?>
  69. <table border=1>
  70. <tr>
  71. <td>파일내용</td>
  72. </tr>
  73. </table>


 


2008/09/08 12:59 2008/09/08 12:59

Posted on 2008/09/08 12:57
Filed Under [1] IT 관련/2. Linux

1. engine - PHP가 아파치 모듈로 설치 되었을 경우 특정 디렉토리에서만 스크립트가
   동작하게 합니다. 이것은 아파치 httpd.conf 파일에 아래 항목을 추가합니다.
   php_admin_flag engine on(PHP3의 경우 php3_engine on)
2. short_open_tag - php tag 사용여부를 정합니다. XML과 같이 사용할 경우
   이 부분은 on으로 해야 합니다.
3. asp_tags - ASP 태그의 사용 여부를 설정합니다.
4. y2k_compliance - y2k 문제에 해당하는 브라우저를 위한 설정입니다.
5. safe_mode - php를 안전 모드로 동작 하게끔 하는 설정입니다.
   safe_mode_exec_dir 지시자의 해당 디렉토리에 존재하는 실행 파일이 아닌 경우 실행 되지 않습니다.
   (root에 있는 파일만 참조하게 합니다.)
6. safe_mode_exec_dir - 실행 프로그램이 있는 디렉토리 명을 적어 줍니다.
"5번"참고
7. max_execution_time - 스크립트 실행 시간을 초단위로 설정합니다.
8. memory_limit - 스크립트 실행 때 메모리 사용을 설정합니다.
9. error_reporting - 에러 출력을 설정합니다.

에러의 종류

  1. 일반적인 에러 출력(Normal function errors)
  2. 일반적인 에러 출력(Normal warnings)
  3. 문법적인 에러 출력(Parser errors)
  4. 버그의 가능성이 있으며 무시할 수 있는 에러 출력(Notices)

10. display_errors - 에러 상황을 html 양식으로 보여줍니다.
11. log_errors - 여러 가지 에러를 로고 파일에 저장합니다.
12. track_errors - $php_errormsg에 마지막의 에러나 경고 메시지를 저장합니다.
13. warn_plus_overloading - 스크립트에서 문자열 결합사용 때 " . " 연산자를 사용하지만 만약
     " + "를 사용했을 경우 경고 메시지 출력 여부를 설정합니다.
14. track_vars - GET, POST, COOKIE 등으로 전달된 변수 값을 각각의 $HTTP_GET_VARS ,
     $HTTP_POST_VARS , $HTTP_COOKIE_VARS의 배열 변수로 자동 저장 여부를 설정합니다.
15. magic_quotes_gpc - GET , POST , COOKIE 등으로 전달된 데이터에 ‘ " / 등의 문자가 존재할 경우
    자동으로 (\)역슬래쉬를 붙일지 여부를 설정합니다. 이것은 각 문자를 스크립트와 구별해서
    인식시키기 위해 필요한 부분입니다.
16. magic_quotes_runtime - 외부 스크립트나 여타 소스로부터 돌아오는 데이터에 대해 (\)역슬래쉬를
     붙일지 여부를 설정합니다.
17. auto_prepend_file - INCLUDE와 비슷한 부분이고, 스크립트의 처음 부분에 포함될 파일명을
    적어 줍니다.
18. auto_append_file - "17번"과 같으며 마지막 부분에 포함될 파일명을 적어 줍니다.
19. include_path - INCLUDE, REQUIRE 문의 파일 경로를 설정합니다.
20. doc_root - 서버의 루트 디렉토리를 설정합니다. 안전 모드로 동작할 경우 해당 디렉토리를 벗어나
     다른 쪽으로 접근을 할 수 없습니다.
21. user_dir - 서버의 계정을 가진 일반 유저에 PHP 스크립트의 사용을 허가할 수 있습니다.
22. upload_tmp_dir - 파일이 업로드 될 디렉토리를 설정합니다. 기본적으로 /tmp 디렉토리로
     업로드됩니다.
23. upload_max_filesize - 업로드 할 수 있는 최대 파일 크기를 설정합니다.
24. SMTP - mail( ) 함수의 사용을 위해 현 서버의 DNS , IP를 적어줍니다.
25. sendmail_from - 보내는 메일 주소를 설정할 수 있습니다.
26. sendmail_path - sendmail 서버가 있는 위치를 적어 줍니다.
27. debugger.host - 디버거로 사용하는 호스트 명을 적어 줍니다.
28. debugger.port - 디버거로 사용하는 포트 번호를 적어 줍니다.
29. debugger.enabled - 디버거의 사용 여부를 설정 합니다.
30. session.save_handler - 세션과 해당 데이터를 저장하는 방식을 설정하는 부분입니다.
     기본적으로 파일 방식 입니다. 세션 항목은 이 책에 사용되는 회원제 부분에서 사용됩니다.
31. session.save_path - 세션 전달 인수를 정의 하는 부분이며 디폴트인 파일 방식일 경우 해당
     파일의 경로를 적어 줍니다.
32. session.name - 쿠키 이름으로 사용되어질 세션 이름을 설정합니다. 디폴트는 PHPSESSID입니다.
33. session.auto_start - 세션 요청 시에 자동 모듈 생성 여부를 설정합니다.
     0 - off , 1 - on
34. session.lifetime - 해당 세션이 유지 되는 시간을 설정 합니다.
     디폴트의 경우 0이며 사용자의 브라우저가 종료 될 때까지 유지됩니다.
35. session.gc_probability - 해당 세션 값이 제거 될 경우 낭비 되는 시스템 메모리 자원을 반납하는
     시점을 설정합니다.
36. session.gc_maxlifetime - 해당 세션의 시스템 메모리 자원 반납을 가질 수 있는 시간을 설정합니다.

2008/09/08 12:57 2008/09/08 12:57

About

by Jaehun

Counter

· Total
: 51169
· Today
: 20
· Yesterday
: 100