С помощью Vagrant и PUPHPET сконфирурировал сервер.
Настройки vhost скопировал с боевого сервера (удалив не важные для данной проблемы локейшены).
При переходе на:
site.devsite.dev/index.php nginx отдает
исходный код файла index.php.
При этом если перейти например на
site.dev/page_doesnt_exist то index.php исполняется.
Конфиг nginx
user www-data;
worker_processes 1;
worker_rlimit_nofile 1024;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
server_tokens on;
types_hash_max_size 1024;
types_hash_bucket_size 512;
server_names_hash_bucket_size 64;
server_names_hash_max_size 512;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
server {
listen 192.168.56.101:80;
server_name site.dev;
set $yii_bootstrap "index.php";
root /var/www/site.ru;
access_log /var/log/nginx/site.dev.access.log;
error_log /var/log/nginx/site.dev.error.log;
charset utf-8;
index index.php index.html;
location / {
try_files $uri $uri/ /$yii_bootstrap?$args;
}
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
set $fsn /$yii_bootstrap;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
include fastcgi_params;
}
sendfile off;
}
}
Причем странное дело, если во всех
location проставить
deny all, то
site.dev/index.php и
site.dev всё равно отдают исходный код, но сюда
site.dev/page_doesnt_exist уже не пускает.
Но как так?
Получается запрос обрабатывается какими то другими
location, но я специально слил все в один конфиг, чтобы ничего лишнего случайно не подцепилось...
п.с.
Если создать файл
phpinfo.php <? phpinfo();?>
и перейти на
site.dev/phpinfo.php, то он тоже исполняется.
upd:
Добавил
index index.php;:
location / {
index index.php;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
Стал открываться сайт по адресу
http://site.dev, но
site.dev/index.php все равно отдает исходный код.