alias issue again

Gena Makhomed gmm на csdoc.com
Ср Ноя 30 17:40:35 UTC 2011


On 30.11.2011 18:31, Валентин Бартенев wrote:

>> -location /pma/$ {
>> +location /pma/ {

> Да и это ещё не всё.
>
> Даже исправить указанную мной проблему, то после того, как он в этот локейшн
> попадет, то произойдет внутренний редирект на /pma/index.php
>
> Файл у вас лежит тут: /usr/local/www/phpMyAdmin/index.php
>
> а location ~ \.php$  c fastcgi_pass передаст:
>
> fastcgi_param   SCRIPT_FILENAME /usr/local/www$fastcgi_script_name;
>
> т.е. /usr/local/www/pma/index.php
>
> Сдается мне, rewrite ^/pma/(.+)$  /phpMyAdmin/$1  - это именно то, что вы вообще
> хотите.

скорее всего ему не только /pma/ нужно будет на сервере,
но и другие locations тоже. поэтому наверное - лучше изначально
писать легко масштабируемую конфигурацию, используя вложенные
locations, т.е. примерно так:

server {
     ...
     location /pma/ {
         ...
         location ~ \.php$ {
         ...
         }
     }
}

тогда все другие locations на глобальном уровне конфига
будут никак не связаны с location ~ \.php$ внутри location /pma/
и их можно будет конфигурировать полностью независимо друг от друга.

> Попробуйте так:
>
> server {
>          listen       80;
>          server_name  localhost;
>
>          #charset koi8-r;
>
>          #access_log  logs/host.access.log  main;
>
>          location / {
>              root   /usr/local/www;
>              index  index.html index.htm index.php;
>          }
>
>          location ~ \.php$       {
>                rewrite ^/pma/(.+)$  /phpMyAdmin/$1 break;
>
>                fastcgi_pass    unix:/tmp/php-fpm.sock;
>                fastcgi_index   index.php;
>                fastcgi_param   DOCUMENT_ROOT /usr/local/www;
>                fastcgi_param   SCRIPT_FILENAME /usr/local/www$fastcgi_script_name;
>                include         fastcgi_params;
>          }
>
>          error_page   500 502 503 504  /50x.html;
>          location = /50x.html {
>                  root   /usr/local/www/nginx-dist;
>          }
> }

я представляю во что превратится конфиг, если надо будет добавить кроме
/pma/ еще и другие какие-то location`ы и как это все потом поддерживать.

вместо rewrite ^/pma/(.+)$  /phpMyAdmin/$1 break;
в конфиге наверное лучше использовать alias все-таки.
судя по документации именно для этого директива alias и придумана.

-- 
Best regards,
  Gena



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