Erzsamatory Weblog


※ 외국 문서 번역 자료입니다.

원문: Apache and Nginx configurations (http://goo.gl/VdQoY4)


아파치 웹 서버 (Apache Web Server)


Yii Framework는 초기 설정 그대로의 아파치 웹 서버에서 정상적으로 동작될 수 있도록 설계되었습니다. Yii Framework에서 사용되는 .htaccess 파일은 웹 유저의 접근이 제한되는 파일을 보호하기 위해 사용됩니다. 만약 부트스트랩 파일 즉, index.php 파일을 URL에서 숨기고 싶다면 아파치 웹 서버의 mod_rewrite 모듈을 추가한 후 이에 맞는 지침을 따르면 됩니다. 여기에서는 직접적인 아파치 웹 서버의 설정을 건드리지 않고 .htaccess 파일을 사용하거나 가상 호스트를 사용하여 mod_rewrite 모듈의 지침을 따르는 것을 권장합니다.

다음은 mod_rewrite를 활용한 아파치 웹 서버의 설정 예시입니다.

RewriteEngine on

# prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
RedirectMatch 403 /\..*$
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php



사용자 삽입 이미지


Nginx


Yii Framework는 아파치 웹 서버에서뿐만 아니라 Nginx를 기반으로 하는 FPM SAPI 바탕의 PHP에서도 테스트되었습니다. 여기에서는 호스트 설정의 예시를 보여드리겠습니다. 이 예시는 부트스트랩 파일을 정의하고 Yii Framework가 사용자의 잘못된 요청 (존재하지 않는 파일 검색)을 탐지할 수 있게 해줍니다. 또한 아파치 웹 서버의 mod_rewrite 모듈과 같이 보기 좋은 URL을 만들어주는 역할도 담당합니다.

server {
    set $host_path "/www/mysite";
    access_log  /www/mysite/log/access.log  main;
    
    server_name  mysite;
    root   $host_path/htdocs;
    set $yii_bootstrap "index.php";

    charset utf-8;
    
    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }
    
    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }
    
    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }
    
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;
        
        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
        
        fastcgi_pass   127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
        
        #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }
    
    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}


이 설정을 사용할 때 개발자는 많은 불필요한 시스템 콜을 방지하기 위해서 php.ini 내의 cgi.fix_pathinfo 설정을 변경할 수도 있습니다. (cgi.fix_pathinfo=0)

목차
1. 시작하기
     1-1. Yii란 무엇인가?
     1-2. 설치
     1-3. 아파치 웹서버와 Nginx 설정 (현재 페이지)
     1-4. 첫 Yii 어플리케이션 생성

2. 기본 개념
     2-1. 모델-뷰-컨트롤러 (MVC)
     2-2. 엔트리 스크립트
     2-3. 어플리케이션
     2-4. 컨트롤러
     2-5. 모델
     2-6.
     2-7. 컴포넌트
     2-8. 모듈
     2-9. 경로 별칭과 네임스페이스
     2-10. 일반 규칙
     2-11. 개발 흐름 (Workflow)
     2-12. MVC 예제

3. 양식(Form) 사용 연습
     3-1. 개요
     3-2. 모델 생성
     3-3. 액션 생성
     3-4. 양식 생성
     3-5. 테이블 추출
     3-6. 양식 생성기 사용하기

4. 데이터베이스 사용 연습
     4-1. 개요
     4-2. DB 액세스 객체
     4-3. 쿼리 빌더
     4-4. 동적 레코드
     4-5. Relational Active Record
     4-6. 데이터베이스 변환

5. 캐싱
     5-1. 개요
     5-2. 데이터 캐시
     5-3. 부분 캐시
     5-4. 페이지 캐시
     5-5. 동적 컨텐츠

6. Yii 확장
     6-1. 개요
     6-2. 확장 사용하기
     6-3. 확장 생성하기
     6-4. 써드파티 라이브러리 사용하기

7. 테스트
     7-1. 개요
     7-2. Defining Fixtures
     7-3. Unit Testing
     7-4. Functional Testing

원문: http://www.yiiframework.com/doc/guide/
http://www.erzsamatory.net/trackback/21

건전한 댓글 문화를 만들어주시기 바랍니다 ^^
불건전한 댓글이 등록되는 경우 관리자의 임의적 판단으로 삭제될 수 있음을 미리 공지드립니다.

비밀글로 작성하기