vários aplicativos no nginx; um é na raiz, o outro não é

2

Aqui está o meu arquivo de configuração do phpmyadmin:

server {
    listen   8080;
    server_name  phpmyadmin;

    access_log  /var/log/nginx/phpmyadmin.access.log;
    error_log   /var/log/nginx/phpmyadmin.error_log warn;

    root   /var/www/phpmyadmin;
    index  index.php index.htm;

    location ~ \.php {
            include /etc/nginx/fastcgi_params;
            keepalive_timeout 0;
            fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_pass    127.0.0.1:9000;
    }
}

Agora, quando vou para http://domain.com:8080 , aparece o site do phpmysdmin. Eu quero que apenas abra o phpmyadmin se eu for para http://domain.com:8080/phpmyadmin . Que mudança preciso fazer aqui?

Eu tenho cerca de 4 ou 5 aplicativos que eu vou executar a partir do nginx, e eu prefiro manter cada um em seu próprio perfil sites-enabled , em vez de um arquivo de configuração grande que cubra todos eles.

    
por nbv4 07.11.2009 / 18:38

2 respostas

3

um pouco mais detalhado:

server {
  listen       8080;
  server_name  phpmyadmin;

  access_log  /var/log/nginx/phpmyadmin.access.log;
  error_log   /var/log/nginx/phpmyadmin.error_log warn;
  location ~ /phpmyadmin/.*\.php {
    root            /var/www;
    include         /etc/nginx/fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass    127.0.0.1:9000;
  }
  location /phpmyadmin/ {
    root   /var/www;
    index  index.php;
  }
  location = /phpmyadmin {
    rewrite ^ /phpmyadmin/index.php;
  }
  location / {
    return 403;
  }
}

observe também a configuração da raiz: é relativa ao caminho da solicitação, não o que vem depois disso. Então, um pedido de link fará com que o nginx tente encontrar o arquivo em $ root / phpmyadmin / index.php, onde o $ root é root caminho definido no bloco de localização.

    
por 11.02.2010 / 09:59
2

Use a localização:

location /phpmyadmin {
        root   /var/www/phpmyadmin;
        include /etc/nginx/fastcgi_params;
        keepalive_timeout 0;
        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_pass    127.0.0.1:9000;
}
    
por 09.11.2009 / 00:55

Tags