1
У меня есть старая конфигурация с apache. Теперь я хочу переконфигурировать все для nginx + php-fpm. Но есть некоторые проблемы с SCRIPT_FILENAME. Мои проекты хранятся в папке/www. В нем есть 3 папки.Конфигурация Nginx SCRIPT_FILENAME
- 1-я папка для статических изображений. (img) Должно работать на сайте site.com/images/[1.png]
- Вторая папка для пользовательских php-скриптов (php) Sloud work на site.com/php/[qweqwe]
- 3-я тема для проекта Yii. (yii) Должен работать на сайте site.com/yii/
У них есть пользовательские перезаписи.
Вот мой Nginx сервер конфигурации:
server {
listen 80;
server_name site.com;
root /www;
location ~* .(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc|html)$ {
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
log_not_found off;
expires 360d;
}
location /php {
root /www/php;
if (!-e $request_filename){
rewrite ^(.*)$ /php/api2.php;
}
location ~* \.php$ {
#rewrite ^/(.*)/$ /$1 permanent;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_pass pool;
}
}
location /yii {
root /www/yii;
rewrite (.*)\.small\.([^\.]+)$ /sfad/thumb.php?img=$1.$2 break;
rewrite agent[0-9]+site[0-9]+[a-z]*/(.*) /$1;
location ~* \.php$ {
#rewrite ^/(.*)/$ /$1 permanent;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_pass pool;
}
try_files $uri /index.php?$args;
}
}
Но каждый раз, когда у меня есть ошибка
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
Я не уверен, но эти вложенные блоки расположение кажется плохой идеей. Если вы еще этого не сделали, я рекомендую прочитать эти [советы по устранению неполадок NGINX] (http://wiki.nginx.org/Pitfalls). Это действительно помогло мне ускориться на «NGINX». Кроме того, вы можете создать очень простой серверный блок, убедиться, что он работает для одного из ваших вариантов использования, а затем оттуда расширяется. –
Изменить корень документа на реальный. измените эту строку '' fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; '' '' fastcgi_param SCRIPT_FILENAME/www $ fastcgi_script_name; '' – Kavin