Autor Zpráva
iiic
Profil
Ahoj… už několik dní bojuji s konfigurací nginxu pod Windows (vím, že tam nemá takový výhody jako na linuxu, to teď prosím neřešme). A stále na to nemohu přijít.

Chtěl bych mít http://localhost/domena.tld/www a http://localhost/jina-domena.tld/www v adresářích C:/server/domena.tld/www a C:/server/jina-domena.tld/www

Zatím mi to ale funguje jen částečně… http://localhost/domena.tld/www funguje, ovšem už ne http://localhost/domena.tld/www/index.php (který tam fyzicky je… jak je tohle možné ? :( ) požadavek na index píše chybu 'is_dir(): open_basedir restriction in effect. File(index.php) is not within the allowed path(s): (C:\server\www)'

a to hlavní co mě ale trápí je, že nejde http://localhost/domena.tld/www/foo/bar i když na Apachi to chodilo… tady dostanu jen 404-ku

celý konfigurák nginx.conf vypadá takto:

events {
    worker_connections  1024;
    multi_accept        off;
}

http {
    autoindex on;

    upstream php {
        server 127.0.0.1:9100;
    }

    server {
        listen 80;
        server_name  localhost;
        root         www;

        index  index.php index.html index.htm;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }
        
        location ~ /\. {
            access_log off;
            log_not_found off;
            deny all;
        }
        
        location ~ \.php$ {
            try_files $uri =404;
        
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
        
            fastcgi_pass php;
            fastcgi_index index.php;
            fastcgi_param   PATH_INFO $fastcgi_path_info;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
    }

}

Prosím o radu, protože já na to asi fakt nepřijdu.

Půjde tohle nějak rozchodit, nebo bych měl raději dělat virtualhosty (v hosts nasměrovat domena.local na localhost? jak se pak musí upravit konfigurák ?) ?
Davex
Profil
Nejspíš je chyba v určení kořenového adresáře. Mělo by tam být:

root         C:/Server/;

požadavek na index píše chybu 'is_dir(): open_basedir restriction in effect. File(index.php) is not within the allowed path(s): (C:\server\www)'
To je nastavením PHP v konfigurační volbě open_basedir, které nedovolí přístup mimo určený adresář.
iiic
Profil
@Davex

obávám se, že to nebude ono… při 'root C:/Server/;' je 404 na úplně každou stránku a při 'root C:/Server/www;' se to chová úplně stejně jako předtím.
Davex
Profil
Přesunout ty subdomény do adresáře C:\server\www\domena.tld\www by se nedalo?
iiic
Profil
@Davex

C:\server\www\domena.tld\www to teď je … nebo jak to bylo myšleno ? možné je asi všechno :)
Davex
Profil
Původně jsi to chtěl mít v adresářích C:/server/domena.tld/www (bez www za C:\Server). Podle mě by bylo nejlepší zařídit, aby všechny adresáře byly pod originálním kořenem webu, což by asi mělo být C:\Server\www.
iiic
Profil
@Davex

to mám no, tím se ale nic nezmění :( stejné chování všeho
Davex
Profil
V konfiguraci problém nevidím. Restartoval jsi nginx po změně konfigurace?
iiic
Profil
Davex:

jo to jo… jestli se nemusí restartovat i celý OS, tak ano

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: