Nginx + Perl. Как развернуть Twiki?

daozor nginx-forum на nginx.us
Вт Янв 25 09:42:29 MSK 2011


Приветствую!

Работает Nginx + Spawn-fcgi-1.4.18 > fcgiwrap version 1.0

Задача развернуть на базе этого
сервера Twiki (twiki.org)

Проблема в следующем.
Твики основаны на перл-скриптах, при
этом файлы скриптов не имею
расширения.
При запросе скрипт не выполняется, а
вместо этого браузер предлагает
скачать файл.

Так выглядит список перл скриптов от
твики
[code]
/var/www/twiki/bin
drwxr-xr-x  3 root root  4096 Jan 24 13:15 .
drwxr-xr-x 10 root root  4096 Jan 24 12:09 ..
-r-xr-xr-x  1 root root  1380 Oct 11 10:15 attach
-r-xr-xr-x  1 root root  1381 Oct 11 10:15 changes
-r-xr-xr-x  1 root root 31210 Oct 11 10:15 configure
-r-xr-xr-x  1 root root  1378 Oct 11 10:15 edit
...
[/code]

А вот конфиг, при котором не происходит
выполнения этих скриптов:
[code]
 server {                                                               
                                                                        

        listen                          80;                             
                                                                        
   
        server_name                     twiki;                          
                                                                        
   
                                                                        
                                                                        
   
        location                        / {                             
                                                                        
   
         root                           /var/www/twiki/;                
                                                                        
   
         index                          index.html;                     
                                                                        
   
         }                                                              
                                                                        
   
                                                                        
                                                                        
   
        location                        /twiki/bin {                    
                                                                        
   
         root                           /var/www/twiki/bin/;            
                                                                        
   
         include                        /etc/nginx/fastcgi_params;      
                                                                        
   
         fastcgi_pass                   127.0.0.1:10001;                
                                                                        
   
         fastcgi_param  SCRIPT_FILENAME
/var/www/twiki$fastcgi_script_name;                                     
                                    
         }                                                              
                                                                        
   
           }
[/code]

Если же перлячные файлы имеют
расширение (pl/cgi), то на примере нагиоса
все работает замечательно, и вот
выдержка работающего конфига:
[code]
 location                        ~ .cgi$ {                              
                                                                     
         root                           /var/www/nagios/cgi-bin/;       
                                                                        
   
         rewrite                        ^/nagios/cgi-bin/(.*)\.cgi
/$1.cgi break;                                                          
         
         include                        /etc/nginx/fastcgi_params;      
                                                                        
   
         fastcgi_pass                   127.0.0.1:10001;                
                                                                        
   
         fastcgi_param  SCRIPT_FILENAME
/var/www/nagios$fastcgi_script_name;                                    
                                    
         }
[/code]

Но как быть в случае, когда файлы без
расширения? Какой локейшн указывать,
реврайт? Как сделать чтобы файлы не
качались а выполнялись? Выручайте
советом. Бьюсь который день..


Спасибо!

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,169326,169326#msg-169326




Подробная информация о списке рассылки nginx-ru