Files
yii/docs/guide/uk/quickstart.apache-nginx-config.txt

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://wiki.nginx.org/) та 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>