Ma'lumot uchun:
Veb-serverning basic/web ildiz katalogini o'rnatib, siz ruxsat
berilmagan kirish kodidan va basic/web sahifadagi ma'lumotlardan himoya qilasiz.
Bu ilovani yanada xavfsiz holga keltiradi.
Ma'lumot uchun:
Agar dastur veb-server sozlamalariga kirish imkoni bo'lmagan
hosting bilan ishlayotgan bo'lsa, siz
"Birgalikda Hosting ustida ishlash"
bo'limida
ko'rsatilganidek, ilovaning tuzilishini o'zgartirishingiz mumkin.
Ta'vsiya etilgan Apache sozlamalari
Quyidagilarni Apache httpd.conf yoki virtual sozlamalar faylga qo'shing.
path/to/basic/web to'g'ri manzilga path/to/basic/web almashtirishni unutmang.
# Ildiz kotalogini o`rnatayapmiz "basic/web"
DocumentRoot "path/to/basic/web"
RewriteEngine on
#Agar so`ralayotgan fayl yoki katalogiy bor bo`lsa unga to`g`ridan to`g`ri murojat
qilamiz
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Agar yo`q bo`lsa index.php ga o`tqazib yuboramiz.
RewriteRule . index.php
# ...boshqa sozlamalar...
Tavsiya etilgan Nginx sozlamalari
PHP Nginx uchun
FPM SAPI
sifatida o'rnatilishi kerak. Quyidagi
Nginx
sozlamalaridan foydalaning va basic/web va mysite.test to'g'ri manzilini hostname-
ga almashtirishni va path/to/basic/web ni almashtirishni unutmang.
server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## слушаем ipv6
server_name mysite.test;
root /path/to/basic/web;
index index.php;
access_log /path/to/project/log/access.log;
error_log /path/to/project/log/error.log;
location / {
# Barcha so'rovlarni indeks bo'lmagan katalog va fayllarga yo'naltiramiz.
Index.php
try_files $uri $uri/ /index.php?$args;
}
# Yii-ni ishlamaslik uchun mavjud bo'lmagan statik fayllarni chaqirish uchun
quyidagi qatorlarni belgilang
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html;
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}
Ushbu konfiguratsiya yordamida php.ini cgi.fix_pathinfo=0 ni stat() tizimiga
keraksiz tizim chaqiruvlariga yo'l qo'ymaslik uchun o'rnating.
HTTPS-dan foydalanib, fastcgi_param HTTPS on; ni belgilash kerak fastcgi_param
HTTPS on; Shunday qilib Yii xavfsiz ishlashini aniq belgilashi mumkin.
Odatda, boshqaruvchi ma'lum bir manba turiga oid so'rovlarni bajarish uchun mo'ljallangan. Shu
sababli, boshqaruvchi identifikatorlari ko'pincha ular ishlayotgan resurslarning turlariga ishora
qiluvchi otlardir. Masalan, siz foydalanishingiz mumkin
article
maqola ma'lumotlarini
boshqaradigan kontroller identifikatori sifatida foydalanishingiz mumkin.
Odatiy bo'lib, kontroller identifikatorlari faqat quyidagi belgilarni o'z ichiga olishi kerak:
inglizcha harflar kichik harflar, raqamlar, pastki chiziq, defis va oldinga qiyshiq chiziq. Masalan,
article
va
post-comment
ikkalasi ham yaroqli kontroller identifikatorlari bo'lsa
article?
,
PostComment
,
admin\post
, emas.
Tekshiruvchi identifikatori pastki katalog prefiksini ham o'z ichiga olishi mumkin. Masalan,
boshqaruvchi nomlar maydoni
ostidagi pastki katalogdagi kontrollerni
admin/article
anglatadi
. Pastki katalog prefikslari uchun yaroqli belgilarga quyidagilar kiradi: kichik va katta harflardagi
inglizcha harflar, raqamlar, pastki chiziq va toʻgʻridan-toʻgʻri chiziqchalar, bunda toʻgʻridan-
toʻgʻri chiziqchalar koʻp darajali kichik kataloglar uchun ajratuvchi sifatida ishlatiladi
(masalan,
articleadminpanels/admin
).
Do'stlaringiz bilan baham: |