1, Kéne nekem az Apache-féle MultiViews cucc, de azt nem sikerült nginx-re reszelnem.
2, Kéne nekem az Apache-féle alias cucc, de azt sem sikerül valamiért megoldanom. Folyton 404-et dob a /alias-ra, de ha a docroot-ja tartalmaz alias mappát, akkor jó. Na de nekem az úgy nem stimmel, hogy alias/public_html/alias, hogy legyen egy /alias-om...
1-t így csináltam:
try_files $uri.php $uri/ /index.html;
De ez is 404-ezik...
Az elsőt még csak csak tudnám nélkülözni, de a második nagyon bassza a csőröm...
Szerk: (2014-04-08)
Hozzászólásokban érkezett javaslatok, és kuglizás hatására reszeltem egy ilyet:
location /alias {
alias /alias/public_html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
if ($fastcgi_script_name ~ /alias(/.*\.php)$) {
set $valid_fastcgi_script_name $1;
}
fastcgi_param SCRIPT_FILENAME $document_root$valid_fastcgi_script_name;
include fastcgi_params;
}
}
Ezzel megvan oldva az alias problematikája.
- lajos22 blogja
- A hozzászóláshoz be kell jelentkezni
- 1395 megtekintés
Hozzászólások
sub
- A hozzászóláshoz be kell jelentkezni
location /alias {
alias /az/aliasod/helye
}
ez nem jó?
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Addig jó, míg csak ez van benne. De amint ráakarom venni, hogy ott is működjön fastcgi-vel, akkor megbolondul. ugyanúgy a /alias/public_html/alias/index.php-t akarja keresni... Ennek az okát tudom, csak a megoldása nem tiszta.
--
Fontos! Ha berágok, nem feltétlen személyed ellen szól...
openSUSE 13.1 x86_64
- A hozzászóláshoz be kell jelentkezni
location ~ ^/~([^/]+)/(.+\.php)$ {
if (!-f /home/$1/public_html/$2) {
rewrite ^ 404;
}
alias /home/$1/public_html/$2;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
index index.html index.htm index.php;
autoindex on;
}
És ezt még egész előre a server szekcióba (persze a speckó igényeid szerint módosítva).
- A hozzászóláshoz be kell jelentkezni
Hmm.. Nem is rossz.
De közben reszeltem egy ilyet:
if($fastcgi_script_name ~ /alias(/.*\.php)$) { set $valid_fastcgi_script_name $1; } fastcgi_param SCRIPT_FILENAME $document_root$valid_fastcgi_script_name;
--
Fontos! Ha berágok, nem feltétlen személyed ellen szól...
openSUSE 13.1 x86_64
- A hozzászóláshoz be kell jelentkezni
userdir megoldast _sosem_ rakunk szerver szekcioba, apache-bol is ugy irtom, mint a darazsakat. Potential security issue.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
És akkor hogyan kellene? Nem vagyok http-szerver-mester (se nginx, se lighttpd, se apache), azért kérdem (mondjuk ez csak a saját laptopomon van így beállítva, tehát a security issue inkább csak impotential :) ).
- A hozzászóláshoz be kell jelentkezni
Az nginx eseteben siman server contextbe rakjuk az egeszet, es koszonjuk, Apache eseteben meg globalisan letiltjuk a userdir alapertelmezeset, es virtualhost contextben engedelyezzuk. Nem bonyolult, csak egy picit utana kell olvasni.
Virtualhost kontextusban mar elfer a dolog, mert azt lehet korlatozni. De egy random oldal alol ne legyen mar tamogatottt az userdir hasnzalata, tehat ne lehessen mar egy http://index.hu/~uzsolt/lofasz.html -t elengedni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Az nginx eseteben siman server contextbe rakjuk az egeszet
Én nem azt csináltam? Ha esetleg egy idevágó linkkel megdobnál, megköszönném.
Nem bonyolult, csak egy picit utana kell olvasni.
Tudom, de annyira nem érdekel a dolog, nálam csak az a lényeg, hogy működjön a laptopomon.
- A hozzászóláshoz be kell jelentkezni
"Én nem azt csináltam? "
Valamiert ugy olvastam, hogy a http szekcioba. Mea maxima culpa
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Akkor jó. Azt hittem, hogy valamit nagyon durván keverek, de ezek szerint nem (ezt legalábbis).
- A hozzászóláshoz be kell jelentkezni
Felesleges a userdiren rugózni, (én legalábbis) sehol nem használok ilyet. Van ahol alias-ként megadok hasonlóan ~izé mappákat, de cél sosem egy user mappája.
Kivéve a fejlesztői gépemen, ott tényleg a user-hez van kötve, de csak mert felesleges lenne mindig su-val másolgatni a webszerver gyökérbe, ha fejlesztek valamit.
--
Fontos! Ha berágok, nem feltétlen személyed ellen szól...
openSUSE 13.1 x86_64
- A hozzászóláshoz be kell jelentkezni
" csak mert felesleges lenne mindig su-val másolgatni a webszerver gyökérbe"
(confused) miert kellene a webszerver gyokerebe su-val masolgatni? Nem ertem. Fogod, itk, a nevedben fut a vhost, es a sajat usereddel tudsz a webszerver gyokerebe masolgatni. Biztos csak en nem ertem, ez miben bonyolultabb. PHP-FPM eseteben a dolog hasonlo bonyolultsagu, felhuzol egy pool-t ami a te nevedben fut, rakonfiguralod az nginx-et,es koszonjuk. Az FPM pool raadasul nem is vhosthoz kotott, egy FPM akar 4-5 vhostot is kiszolgalhat.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Pont azért álltam neki PHP-FPM-mel szopni, hogy lehessen az én nevemben is docroot, amit a szerverprogram is képes írni-olvasni.
Eddig az volt a gond, hogy mikor lefejlesztettem valamit, akkor bekellett másolni a docrootba, de az a webszerver nevén kellett legyen, és user nem írhatott bele. (Most ne térjünk ki rá, hogy + acl jogoktól miért hányta el magát a webszerver.)
A home-omon belüli public_html mappát aliasként adtam, akkor meg simán tudtam írni bele, és érdekesmód az + acl jogoktól sem hányta össze magát ez a szerencsétlenség...
Éles szerveren pedig nincs ftp-m, sftp-vel rámolom fel a cuccot. Az ottani docrootba pedig szint úgy nem tudok userként írni, ezért rootként kell be sftp-zni. Biztos létezik rá megoldás, de nem volt kedvem annyit szopni. Valamiért, ha a docrootba a webszerver usere mellé teszek az én useremre vonatkozó acl jogokat, akkor ő nem hajlandó működni, és "access denied" van keményen.
szerk: Szintúgy nem elegáns az, hogy a nagyvilág is irkálhat a docroot-ba, szóval ez az opció kimaradt.
--
Fontos! Ha berágok, nem feltétlen személyed ellen szól...
openSUSE 13.1 x86_64
- A hozzászóláshoz be kell jelentkezni
Erre én is kíváncsi vagyok.
- A hozzászóláshoz be kell jelentkezni