Yii 학습 총결산 설치 설정

예전 에 Yii 라 는 글 을 썼 는데 마침 방학 동안 별일 없 었 습 니 다.예전 의 글,Yii 의 공식 문서 와 결합 해서 최근 의 Yii 에 대한 수확 을 정리 하고 시 리 즈 를 써 보 겠 습 니 다.
Yii 는 구성 요소 기반 고성능 PHP 프레임 워 크 로 대형 웹 애플 리 케 이 션 개발 에 사용 된다.Yii 는 엄격 한 OOP 로 작성 되 었 고 완벽 한 라 이브 러 리 인용 과 전면적 인 튜 토리 얼 을 가지 고 있 습 니 다.MVC,DAO/activeRecord,widgets,caching,등급 식 RBAC,웹 서비스 부터 주제 화,I18N 과 L10N,Yii 는 오늘 웹 2.0 응용 개발 에 필요 한 거의 모든 기능 을 제공 합 니 다.사실 Yii 는 가장 효율 적 인 PHP 프레임 워 크 중 하나 다.Yii 는 고성능 PHP 5 의 웹 응용 프로그램 개발 프레임 워 크 입 니 다.간단 한 명령 행 도구 yiic 를 통 해 웹 프로그램의 코드 프레임 워 크 를 신속하게 만 들 수 있 습 니 다.개발 자 는 생 성 된 코드 프레임 워 크 를 바탕 으로 업무 논 리 를 추가 하여 응용 프로그램의 개발 을 신속하게 완성 할 수 있 습 니 다.
Yii 설치
Yii 를 설치 하기 전에 PHP 5.1.0 이상 버 전 을 지원 하 는 웹 서버 와 같은 개발 환경 을 설정 해 야 합 니 다.Yii 는 윈도 우즈 와 리 눅 스 운영 체제 의 아파 치 웹 서버 테스트 를 통과 했다.다른 플랫폼 에서 도 PHP 5 를 지원 하 는 웹 서버 를 실행 할 수 있 습 니 다.인터넷 에 무료 자원 이 많이 발표 되 어 있 습 니 다.PHP 5 를 설정 한 웹 서버 환경 을 얻 을 수 있 습 니 다.여기 서 우 리 는 웹 서버 와 PHP 5 의 설 치 를 버 릴 것 이다.
Yii 의 설 치 는 사실 매우 간단 합 니 다.실제 두 단계 만 필요 합 니 다.
http://www.yiiframework.com/Yii 프레임 워 크 압축 해제 다운로드 파일 을 웹 서버 가 접근 할 수 있 는 디 렉 터 리 로 다운로드 합 니 다.
설치 가 완료 되면 현재 서버 가 Yii 의 모든 요 구 를 만족 시 켰 는 지 확인 하 는 것 을 권장 합 니 다.
다행히도 이렇게 하 는 것 은 매우 쉽다.Yi 는 간단 한 검사 도 구 를 가지 고 왔 다.그것 을 호출 하려 면 브 라 우 저 주소 표시 줄 에 입력 하 십시오:http://yourhostname/path/to/yii/requirements/index.php서버 설정 을 보 여 줍 니 다.검사 도 구 를 사용 하여 서버 에 확장 이나 구성 요소 가 설치 되 어 있 지 않 은 지 확인 하 십시오.그러나 설 치 를 확인 할 수 있 도록 제안 만 할 뿐 입 니 다.보시 다시 피 다음 검사 결 과 는 모두 Passed(통과)상태 가 아니 라 Warning(경고)도 일부 표 시 됩 니 다.물론 설정 상황 이 조금 다 를 수 있 으 므 로 표시 결과 도 다 를 수 있 습 니 다.사실 아래 의 세부 부분 을 모두 통과 할 필 요 는 없다.그러나 일부 도 필요 합 니 다.Conclusion(결론)단락 의 내용 에 따 르 면 서버 설정 은 Yii 의 최소 요 구 를 만족 시 켰 습 니 다.(Your server configuration satisfies the minimum requirements by Yii.)
새 프로그램 만 들 기
Yi 의 설치 위 치 는 이미 알 고 있 습 니 다.
WebRoot 는 웹 서버 가 설정 한 루트 디 렉 터 리 입 니 다.
명령 행 에서 프레임 워 크 디 렉 터 리 로 들 어가 다음 내용 을 수행 합 니 다.

  % cd Webroot/testdrive/framework
  % yiic webapp ../../testdrive
  Create a Web application under '/WebRoot/testdrive'? [Yes|No]
  Yes
         mkdir /WebRoot/testdrive
         mkdir /WebRoot/testdrive/assets
         mkdir /WebRoot/testdrive/css
         generate css/bg.gif
         generate css/form.css
         generate css/main.css
응용 프로그램 이/WebRoot/demo 에 성공 적 으로 만 들 어 졌 습 니 다.이 웹 앱 명령 의 역할 은 새로운 Yii 응용 프로그램 을 만 드 는 것 입 니 다.절대 경로 든 상대 경로 든 하나의 인자 만 지정 하면 프로그램 을 만 듭 니 다.그것 이 만 든 디 렉 터 리 와 파일 은 프로그램의 골격 일 뿐이다.

testdrive/
   index.php                 Web
   index-test.php           
   assets/                  
   css/                      CSS
   images/                  
   themes/                  
   protected/               
      yiic                   yiic
      yiic.bat               Windows yiic
      yiic.php               yiic PHP
      commands/              'yiic'
         shell/              'yiic shell'
      components/           
         Controller.php     
         Identity.php        'Identity'
      config/               
         console.php        
         main.php            Web
         test.php           
      controllers/          
         SiteController.php 
      data/                 
         schema.mysql.sql    MySQL
         schema.sqlite.sql   SQLite
         testdrive.db        SQLite
      extensions/           
      messages/             
      models/               
         LoginForm.php       'login'
         ContactForm.php     'contact'
      runtime/              
      tests/                
      views/                
         layouts/           
            main.php        
            column1.php     
            column2.php     
         site/               'site'
            pages/           " "
               about.php     "about"
            contact.php      'contact'
            error.php        'error' ( )
            index.php        'index'
            login.php        'login'
         system/            
이 때 코드 를 한 줄 쓰 지 않 아 도 브 라 우 저 에서 다음 URL 을 방문 하여 첫 번 째 Yii 응용 프로그램 을 볼 수 있 습 니 다.
http://hostname/testdrive/index.php
 
이 앱 은 첫 페이지,연락처,로그 인 페이지 등 세 페이지 를 포함 하고 있 습 니 다.홈 페이지 는 응용 프로그램 과 사용자 로그 인 상태 에 대한 정 보 를 보 여 줍 니 다.연락 페이지 는 사용자 가 그들의 상담 을 작성 하고 제출 할 수 있 도록 연락 양식 을 표시 합 니 다.로그 인 페이지 는 사용자 가 먼저 인증 을 통과 한 후에 권한 을 수 여 받 은 내용 을 방문 할 수 있 도록 합 니 다.
배치 하 다.
이 응용 프로그램 에 서 는 그 페이지 url 에 index.php 가 있 습 니 다.제거 하려 면 어떻게 합 니까?
1.apache 의 mod 열기rewrite 모듈,LoadModule 제거 rewritemodule modules/mod_rewrite.so 앞의"\#"기 호 는에"AllowOverride All"이 있 는 지 확인 합 니 다.
2.프로젝트 의/protected/config/main.php 에 코드 추가:

'components'=>array(
           ...
           'urlManager'=>array(
                 'urlFormat'=>'path',
                 'showScriptName'=>false,// false
                 'rules'=>array(
                     'sites'=>'site/index',
                 ),
           ),
           ...
       ),
3.서버 설정,Yii 는 Apache 와 Nginx 에서 설정 가능
1)Apache
Apache 서버 에서 Yii 는.htaccess 파일 을 설정 해 야 합 니 다.설정 은 다음 과 같 습 니 다.

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
 2)Nginx
Yii 는 Nginx 와 PHP 의 FPM SAPI 를 사용 할 수 있다.설정 은 다음 과 같 습 니 다.

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=0,이렇게 하면 많은 불필요 한 시스템 의 stat()호출 을 피 할 수 있 습 니 다.
기본 설치 와 설정 은 여기까지~~

좋은 웹페이지 즐겨찾기