Files
yii/docs/guide/ru/quickstart.apache-nginx-config.txt
2012-05-09 16:25:38 +04:00

86 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Конфигурация веб-серверов Apache и Nginx
========================================
Apache
------
Yii готов к работе с настроеным по умолчанию Apache. Файлы
.htaccess во фреймворке и директориях приложения ограничивают доступ к
некоторым ресурсам. Для сокрытия файла точки входа (обычно это `index.php`) в
URL можно добавить инструкцию для модуля `mod_rewrite` в файл `.htaccess`
в корневой директории приложения или в настройках виртуальных хостов:
~~~
RewriteEngine on
# если директория или файл существуют, использовать их напрямую
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# иначе отправлять запрос на файл index.php
RewriteRule . index.php
~~~
Nginx
-----
Yii можно использовать с веб-сервером [Nginx](http://nginx.org/ru/) и PHP с
помощью [FPM SAPI](http://php.net/install.fpm). Ниже приведён пример простой
конфигурации хоста. Он определяет файл точки входа и заставляет 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;
}
#отключаем обработку запросов фреймворком к несуществующим статичным файлам
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
# передаем PHP-скрипт серверу FastCGI, прослушивающему адрес 127.0.0.1:9000
#
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
#позволяем yii перехватывать запросы к несуществующим PHP-файлам
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 и PATH_TRANSLATED могут быть опущены, но стандарт RFC 3875 определяет для 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().
<div class="revision">$Id: quickstart.apache-nginx-config.txt 3512 2011-12-27 16:50:03Z haertl.mike $</div>