Основная часть это руководство
http://www.cyberciti.biz/tips/chroot-apache-under-rhel-fedora-centos-linux.htmlТолько так как апач старше 2.2.10, то пункт по установке и настройке mod_chroot нужно исключить. Также желательно исключить пункт по отключению Selinux
А остальное тут
Кстати, я выбрал каталог /chroot/httpdjail в отличии от статьи /httpdjail
Чтобы система Selinux позволила apache читать и передавать в сеть файлы, нужно
пометить их соответвуюшим тегом контекста. В нашем случае httpd_sys_content_t.
Для этого достаточно пометить рабочий каталог. Теперь все файлы, которые будут
записаны в данный каталог, автоматически будут помечены этим же тегом контекста.
semanage fcontext -a -t httpd_sys_content_t "/chroot/httpdjail/var/www/html"
restorecon -v /chroot/httpdjail/var/www/html
Убедится, что на каталог и на файлы в нем выданы нужные теги контектса можно с
помошью команды ls.
ls -Z /chroot/httpdjail/var/www/html
Mожно проверить работу. Запишем в рабочий каталог файл index.html примерно
такого содержания.
<html>
<head>
<title>Hello world</title>
</head>
<body>
<h1>Hello world</h1>
</body>
</html>
Запускаем наш любимый браузер и проверяем, что все работает. Если получам, ошибку
доступа. Нужно проверить логи самого apache и также логи Selinux. Как правило,
если Selinux запретил доступ к файлу, в своем менеджере дает руководство по
решению проблемы.
Проверяем работу PHP, для этого создаем файл index.php с таким содержанием.
<html>
<head>
<title>PHP Hello World</title>
</head>
<body>
<?php
echo "PHP Hello World";
?>
</body>
</html>
Аналогично проверяем его работу в браузере.
Добавляем в index.php строчку echo date('Z'); При проверке такого файла, выесняется
Что происходит сбой. Это происходит потому что PHP в песочнице не имеет доступа
к базе данных часовых поясов. Решение, нужно скопировать данную базу. Она находится
в каталоге /usr/share/zoneinfo
mkdir -p /chroot/httpdjail/usr/share/zoneinfo
Для каталога zoneinfo нужно поставить тег контектса locale_t
semanage fcontext -a -t locale_t /chroot/httpdjail/usr/share/zoneinfo
restorecon -v /chroot/httpdjail/usr/share/zoneinfo
Теперь можно копировать базу часовых поясов.
cp -Rv /usr/share/zoneinfo /chroot/httpdjail/usr/share/
Чтоб разрешить доступ из песочници к базе данных, нужно
setsebool -P httpd_can_network_connect_db 1