On Monday 27 November 2006 00:57, Mathieu CARBONNEAUX wrote: > the idea is to fake document root after chrooting apache. > > after reading configuration and setting document root, in child init i make > chroot to the actual document root, and after i whant to correct document > root to reflect the new document root "/"... > > without that you must have document root that exist in chroot and outside > the chroot... because apache check if document root is directory at > configuration stage...
This is from mod_perl. static apr_status_t restore_docroot(void *data) { struct mp_docroot_info *di = (struct mp_docroot_info *)data; *di->docroot = di->original; return APR_SUCCESS; } static MP_INLINE const char *mpxs_Apache2__RequestRec_document_root(pTHX_ request_rec *r, SV *new_root) { const char *retval = ap_document_root(r); if (new_root) { struct mp_docroot_info *di; core_server_config *conf; MP_CROAK_IF_THREADS_STARTED("setting $r->document_root"); conf = ap_get_module_config(r->server->module_config, &core_module); di = apr_palloc(r->pool, sizeof *di); di->docroot = &conf->ap_document_root; di->original = conf->ap_document_root; apr_pool_cleanup_register(r->pool, di, restore_docroot, restore_docroot); conf->ap_document_root = apr_pstrdup(r->pool, SvPV_nolen(new_root)); } return retval; } Torsten
pgpgc2Pz3XVqo.pgp
Description: PGP signature