Trac + Apache chroot

Használ bárki is Trac-et >=apache-2.2.10 chroot alatt?

Ha igen, hogy bírta működésre?

Nálam mind a mod_fastcgi, mind a mod_python változat "500 Internal Server Error"-ral elhal, amint bekapcsolom a chroot-ot. Chroot nélkül gond nélkül megy.

Működő apache vhost konfigokat is szívesen veszek :)

Maga a chroot megy rendesen, üzemel alóla php-s oldal és SVN is WebDAV-on keresztül.

Szerk:
mod_fastcgi ezt dobja:

[Tue May 26 13:45:03 2009] [alert] [client 80.98.36.61] (2)No such file or directory: FastCGI: failed to connect to (dynamic) server "/www/localhost/cgi-bin/
trac.fcgi": something is seriously wrong, any chance the socket/named_pipe directory was removed?, see the FastCgiIpcDir directive
[Tue May 26 13:45:03 2009] [error] [client 80.98.36.61] FastCGI: incomplete headers (0 bytes) received from server "/www/localhost/cgi-bin/trac.fcgi"

mod_python ezt dobja:

[Tue May 26 12:02:32 2009] [error] make_obcallback: could not import mod_python.apache.\n
ImportError: No module named mod_python.apache
[Tue May 26 12:02:32 2009] [error] make_obcallback: Python path being used "['/usr/lib64/python25.zip', '/usr/lib64/python2.5', '/usr/lib64/python2.5/plat-li
nux2', '/usr/lib64/python2.5/lib-tk', '/usr/lib64/python2.5/lib-dynload', '/usr/lib64/portage/pym', '/usr/lib64/python2.5/site-packages']".
[Tue May 26 12:02:32 2009] [error] get_interpreter: no interpreter callback found.
[Tue May 26 12:02:32 2009] [error] [client 80.98.36.61] python_handler: Can't get/create interpreter.

Hozzászólások

- atirtad a konyvtarakat az uj rootra relativan ?
Pl ha chroot nelkul /www/localhost/cgi-bin/ es a www-be chroot-olsz /localhost/cgi-bin/ -re.

- bemasoltad az osszes lib fuggoeseget a pyhtonnak meg ami meg kell a chrooton belulre?
fonti peldanal maradva /usr/lib64 => /www/usr/lib64 ...
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.

"elvileg" 2.2.10 után már nem kell.

A hibauzenetek alapjan en azert gyanakodnek hogy megse igy van. Fajlokat nem talal amit megtalalt a chrootolas nelkul.
Az meg rendben is van hogy a libeket elore meg tudna nyitni, meg a chroot elott, de mi van az oszes tobbi fajllal amit a cgi program fog majd futtataskor megnyitni?! Pl a socket az sql szerver fele stb. vagy ha net akkor resolv.conf stb.
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.

Pontosan. A libeket nem, de a /usr/lib64/python* konyvtarakat egyenesen kotelezo bemasolni a chroot-ba, mert azok _nem_ libek. A mod_python-os hibauzenet annyira egyertelmu, hogy szinte mar nem is lehetne egyertelmubb.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Huu!

Szerintem nagyon tulbonyolitottad . . .

Tracnek 3 soros configja van, httpd-apache sem kell hozza, egyszeruen onmagaban mukodik, tovabba van VI-ba beintegralhato pluginja is, de mashogy is nezheted.

Annyira egyszerű, hogy másfél napja csinálom :)
Már maga a telepítése is gyönyör volt. Már csak a ~200 soros trac.ini-t kell belőnöm rendesen :D

Nah jó tényleg nem ennyire vészes. Csak a vhosttal fél napot szenvedtem. :)
--
\\-- blog --//

Ha jót akarsz magadnak, felejtsd el a chrootot apachenak. Elvileg mindennek mennie kellene, gyakorlatilag lépten-nyomon csak szop'@s van vele. Volt olyan problémám (IMAP elérés PHP-ben segfaultot okozott), amit az oldott meg, hogy a /etc/passwd-ből csak a www-data sort átmásoltam a chrootba... Ugye milyen logikus?
Egy csomó dolog pedig egyszerűen nem megy, hiába másolsz be mindent (pl. locales Horde-hoz).

Ha tényleg el akarod/kell szeparálni, akkor virtualizáció, chrootot jobb elfelejteni.

--
The Net is indeed vast and infinite...
http://gablog.eu

"miután betöltött minden szükséges libet" -> "miután azt hiszi, hogy betöltött minden szükséges libet"

Aztán ha valami mégsem megy, életed végéig debuggolhatod. Főleg, hogy nem csak közvetlen libek jelentik a függőséget (ld. a példám a www-data sorral a passwd-ben).

--
The Net is indeed vast and infinite...
http://gablog.eu

Igen, az elozo kommentemet inkabb ide kellett volna irni.

Valoban, betolt minden _szukseges_ _libet_. Minden egyeb, amit alapbol az ldd nem dob ki, es/vagy nem lib, azzal szopas van, mert azt nem fogja betolteni. Egy mod_perl-es cucc se fogja neked a Ize/Hoze.pm modult betolteni, mert nem lib es nem is szukseges az _elindulashoz_, maga a program fogja behuzni - persze hogy hibara szalad vele.

En inkabb azt mondom, probalj meg mpm_peruser-t vagy meg inkabb mpm_itk-t hasznalni, jobban szeparal, kevesebb szopassal.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.