fastcgi: Joomla

Denis Shaposhnikov dsh at vlink.ru
Fri Nov 16 19:49:10 MSK 2007


Здравствуйте!

Вчера настраивал работу Joomla через nginx и fastcgi. Т.к. готового
рецепта гугл мне не нашел, решил написать сюда, что бы кому-нибудь
пригодилось. Собственно, все работает как обычно, за исключением одного
момента. Для работы Joomla использовалось следующее правило для
mod_rewrite на Apache:

RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

Вот с этим у меня возникли затруднения. В конце концов, на основе
рецептов для lighttpd, я пришел к следующей конфигурации:

location / {
    root /portal;

    fastcgi_pass  unix:/var/run/spawn-fcgi/spawn-fcgi.sock;
    fastcgi_index index.php;

    set $_fastcgi_script_name $fastcgi_script_name;

    if (!-f $request_filename) {
        set $_fastcgi_script_name "/index.php";
    }

    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /portal$_fastcgi_script_name;
}

location ~* .+\.(css|gif|html?|ico|jpe?g|js|png|swf)$ {
    root /portal;
    expires 1h;
}

Меня в этой конструкции смущает, что если не указано другое, то запрос
проксируется php. А ведь может оказаться файл с суффиксом, который я не
описал. И как к такому запросу отнесется php? А сделать наоборот, что
бы все, кроме php, отдавать статикой, не получается, т.к. в этой Joomla
есть ссылки, которые не существуют в файловой системе, а обрабатываются
тем самым index.php. И мне неизвестны все такие ссылки.

У кого-нибудь есть комментарии?

-- 
DSS5-RIPE DSS-RIPN 2:550/5068 at fidonet 2:550/5069 at fidonet
xmpp:dsh at vlink.ru mailto:dsh at vlink.ru http://wizard.volgograd.ru/





More information about the nginx-ru mailing list