• nginx i aliasy

    From piecia aka dracorp@110:300/1.1 to All on Tue Apr 16 15:21:15 2013
    Witam
    Mam taką konfigurację dla wirtualnego serwera na nginxe:
    #v+
    http {
    index index.php index.html;

    server {
    listen 80;
    server_name nazwa;
    root /usr/share/nginx/html;
    include php-fpm.conf;
    location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    location /phpMyAdmin {
    set $username http;
    root /usr/share/webapps;
    include php-fpm.conf;
    }
    location /pma/ {
    alias /phpMyAdmin/;
    }
    }
    #v-
    gdzie php-fpm.conf:
    #v+
    location ~ \.php {
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass unix:/run/php-fpm/http.sock;
    }
    #v-

    Lokalizacja /phpMyAdmin działa (i /phpMyAdmin/index.php) ale nie działa / pma. W powyższej konfiguracji dostaję takie coś:
    #v+
    open index "/phpMyAdmin/index.php"
    stat() "/phpMyAdmin/index.php" failed (2: No such file or directory)
    http index check dir: "/phpMyAdmin"
    "/phpMyAdmin/index.php" is not found (2: No such file or directory),
    #v-

    Właściwie działa mi jeśli zamiast *alias* dopiszę:
    #v+
    root /usr/share/webapps;
    include php-fpm.conf;
    #v-
    i zrobię symlinka: ln -s phpMyAdmin pma, w katalogu /usr/share/webapps.
    (teraz przed chwilą tak mi wyszło)

    Dlaczego w moim przypadku nie działa połączenie połączenie *alias* i *location*? Czy to kwestia obsługi php? Bo wg. dokumetacji nginxa powinno
    to działać (http://wiki.nginx.org/HttpCoreModule#alias).
    To co po *location* jest teoretycznie dodawane do *aliasu*.
    Dlatego dla pewności dopisałem ponownie *index index.php;* do tego fragmentu.

    ps. Po za tym dlaczego dla nowej lokalizacji muszę ładować na nowo obsługę plików php, skoro w kontekście *server* już raz załadowałem?

    Wcześniej gdy konfigurowałem nginxa to nie używałem aliasów (przynajmniej takich), tylko każdą "usługę" uruchamiałem na osobnej wirtualce.

    --
    piecia aka dracorp
    pisz na: piotr kropka rogoza at wp kropka eu

    --- MBSE BBS v0.95.15 (GNU/Linux-x86_64)
    * Origin: A noiseless patient Spider (110:300/1.1@linuxnet)
  • From piecia aka dracorp@110:300/1.1 to All on Tue Apr 16 23:18:06 2013
    Dnia Tue, 16 Apr 2013 13:21:15 +0000, piecia aka dracorp napisał(a):

    location /pma/ {
    alias /phpMyAdmin/;
    }
    Widzę że miałem błąd w rozumowaniu, winno być:
    alias /usr/share/webapps/phpMyAdmin/;
    ale i tak nie działa.
    To znaczy jest teraz tak:
    #v+
    location /pma/ {
    alias /usr/share/webapps/phpMyAdmin/;
    location ~ \.php {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/run/php-fpm/$username.sock;
    }
    }
    #v-
    Wcześniej był ładowany plik fatcgi.conf który różni się tym, że ma poniższą linię więcej:
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    W logach objawia się to następująco:
    DOCUMENT_ROOT: /usr/share/webapps/phpMyAdmin/
    czyli dobrze

    DOCUMENT_URI: /pma/index.php
    chyba nie ale serwer zwraca 200 ale strona jest pusta.


    --
    piecia aka dracorp
    pisz na: piotr kropka rogoza at wp kropka eu

    --- MBSE BBS v0.95.15 (GNU/Linux-x86_64)
    * Origin: A noiseless patient Spider (110:300/1.1@linuxnet)
  • From piecia aka dracorp@110:300/1.1 to All on Wed Apr 17 16:47:02 2013
    Na forum nginx doszukałem się że zalecane jest dla aliasów i php użycie *root* i symlinka. W przypadku samego *alias* zmienne script_filename i
    http filename tworzone są wraz z nazwą lokalizacji. A po za tym odwołują się do głównego katalogu dla głównej lokalizacji.

    --
    piecia aka dracorp
    pisz na: piotr kropka rogoza at wp kropka eu

    --- MBSE BBS v0.95.15 (GNU/Linux-x86_64)
    * Origin: A noiseless patient Spider (110:300/1.1@linuxnet)