• 김재원님 첫글쓰기뱃지획득

  • 김재원님 회원가입뱃지획득

  • 나의택님 첫글쓰기뱃지획득

  • 정성연님 회원가입뱃지획득

  • 정선진님 첫글쓰기뱃지획득

  • 정선진님 회원가입뱃지획득

  • Alexey님 첫글쓰기뱃지획득

  • Alexey님 회원가입뱃지획득

  • 조용준님 회원가입뱃지획득

  • TedKim님 첫글쓰기뱃지획득

  • TedKim님 회원가입뱃지획득

  • Sangbom님 첫글쓰기뱃지획득

  • 님 첫글쓰기뱃지획득

  • 님 회원가입뱃지획득

  • 님 첫글쓰기뱃지획득

[개요] Apache와 Nginx 구성

2013-06-09 00:32:35    댓글 0    조회 4,080    신고

1. Apache


Yii는 아파치 웹서버에서 실행시킬 수 있습니다. Yii 프레임워크의 응용 프로그램 폴더에 있는 .htaccess 파일로 보호되어야 하는 리소스에 대한 접근을 제한합니다. 

URL에서 부트스트랩파일 ( 기본적으로 index.php )를 감추기 위해 .htaccess 파일이나 아파치 설정파일에 mod_rewrite을 설정할 수 있습니다.


RewriteEngine on


# 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




2. Nginx


Yii는 Nginx와 PHP + FPM SAPI 조합에서도 작동됩니다. 다음은 호스트 구성의 예입니다. 부트스트랩파일(index.php)을 정의하고 존재하지 않는 파일에 대한 모든 요청을 Yii가 포착하도록 보기 좋은 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;

    }


    location ~ /\.ht {

        deny  all;

    }

}


이 구성을 사용하는 경우 php.ini에서 cgi.fix_pathinfo = 0 을 설정하여 시스템 함수 stat () 불필요한 호출을 자주 하지 않도록 할 수 있습니다.



목록 이전글 다음글