В процессе обсуждения в highload_php_ru оказалось, что в услвиях chroot, fopen("http://yandex.ru") не работает, т.к. неможет отрезолвить адрес. Хотел было тоже поковыряться в поисках решения, но это сделали быстрей меня. Оставляю здесь решение, чтобы не потерялось. Нужно скопировать из корневого /etc в сhroot-овый etc файлы host.conf, hosts, localtime, resolv.conf, nsswitch.conf (по идеи только его должно хватить, но не уверен). Также cp -a /lib/libnss_{dns,files,compat}* /chroot/lib/ и рестарт php-fpm, чтобы glibc подхватил нужные либы Code: $ set CHROOT_FPM="/var/www"; echo $CHROOT_FPM; /var/www симлинки Code: $ ln -s "/etc/host.conf" "$CHROOT_FPM/host.conf"; $ ln -s "/etc/hosts" "$CHROOT_FPM/hosts"; $ ln -s "/etc/localtime" "$CHROOT_FPM/localtime"; $ ln -s "/etc/resolv.conf" "$CHROOT_FPM/resolv.conf"; $ ln -s "/etc/nsswitch.conf" "$CHROOT_FPM/nsswitch.conf"; симлинки на дополнительно библиотеки MySQL например Code: $ ln -s "/lib/" "$CHROOT_FPM/lib" $ mkdir -p "$CHROOT_FPM/tmp" $ ln -f "/tmp/mysql.sock" "$CHROOT_FPM/tmp/mysql.sock"
на примере NgINX Code: location ~ \.php$ { ................ root /var/www/rambler_ru; ....... fastcgi_param DOCUMENT_ROOT /rambler_ru; fastcgi_param SCRIPT_FILENAME /rambler_ru$fastcgi_script_name; fastcgi_param PATH_TRANSLATED /rambler_ru$fastcgi_script_name; include fastcgi_params; в fastcgi_params коментируем Code: #fastcgi_param DOCUMENT_ROOT $document_root;
nginx не умеет и не будет уметь запускать отдельные локейшены от разных пользователей, посему от файлового способа передачи запроса придется отказаться или приминить патч Code: ~/nginx-0.6.31/src$ grep -R request_body_file_group_access * http/ngx_http_request.h: unsigned request_body_file_group_access:1; http/modules/ngx_http_dav_module.c: r- >request_body_file_group_access = 1; http/ngx_http_request_body.c: if (r- >request_body_file_group_access) { http/ngx_http_request_body.c: if (r- >request_body_file_group_access) { http/ngx_http_request_body.c, ngx_int_t ngx_http_read_client_request_body: if (r->request_body_file_group_access) { tf->access = 0660; }