
Играет: Sick Puppies - My World
Платформа: CentOS 5
WebServer: Apache 2
Задача: Перенести веб-сервер в чрут окружение.
В репозитории CentOS нет пакета mod_chroot, поэтому собираем его вручную.
Для начала подготовим систему:
yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install httpd-devel
Теперь скачаем и соберем mod_chroot:
cd /tmp
wget http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz
tar xvfz mod_chroot-0.5.tar.gz
cd mod_chroot-0.5
apxs -cia mod_chroot.c
И по окончанию этого безобразия перезапустим веб-сервер:
/etc/init.d/httpd restart
Веб-сервер будет у нас жить в /var/www, поэтому нам нужно перенести туда httpd.pid:mkdir -p /var/www/var/run
chown -R root:apache /var/www/var/run
Теперь необходимо перенастроить конфигурационный файл веб-сервера /etc/httpd/conf/httpd.conf следующим образом:
[...]
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
#PidFile run/httpd.pid
PidFile /var/run/httpd.pid
ChrootDir /var/www
[...]
Пойдем простым способом, не требующим вмешательства в конфигурационные файлы сервера:
mkdir -p /var/www/var
cd /var/www/var
ln -s ../../ www
/etc/init.d/httpd stop
ln -sf /var/www/var/run/httpd.pid /var/run/httpd.pid
/etc/init.d/httpd start
Если в связке с веб-сервером у вас используется PHP, CGI, Perl, Python и прочее, то для нормальной работы нам необходимо также перенести в чрут бинарники и библиотеки (и создать для них соответствующие директории, согласно основной системы). Для поиска зависимостей проще всего использовать утилиту ldd. Пример ее работы:
[centos:/var/www/]# ldd /usr/sbin/suphp
linux-gate.so.1 => (0xffffe000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e34000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e0f000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e03000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7cd2000)
/lib/ld-linux.so.2 (0xb7f23000)
Ну вот собственно и все. Можете ставить себе плюсик и сходить налить чаю :-)
Комментариев нет:
Отправка комментария