Konfigurasi Apache dan Nginx
1. Apache
Yii siap berjalan dengan konfigurasi default web server Apache. File
.htaccess
di dalam framework Yii dan folder aplikasi melarang pengaksesan file-file. Untuk menyembunyikan file bootstrap (biasanya index.php
) di dalam URL Anda bisa menambahkan mod_rewrite
ke dalam file .htaccess
di document root atau ke konfigurasi virtual host:RewriteEngine on
# jika sebuah direktori atau file ada, maka langsung gunakan ini
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# jika tidak ada, maka arahkan ke index.php
RewriteRule . index.php
2. Nginx
Anda dapat menggunakan Yii dengan Nginx dan PHP dengan FPM SAPI.
Berikut ini merupakan contoh konfigurasi host. File ini mendefinisikan
file bootstrap dan membuat Yii menangkap semua request ke file yang
tidak ada, sehingga memungkinkan kita untuk memiliki URL yang cantik.
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;
}
}
Anda bisa set cgi.fix_pathinfo=0 di dalam php.ini jika menggunakan
konfigurasi di atas guna menghindari pemanggilan stat() sistem yang
tidak diperlukan.
0 komentar:
Posting Komentar