Запуска apache в окружении chroot

Перехав из родственного Debian дистрибутива например на ArchLinux вы обнаружите неприятную особенность конфигурации Apache, настройки модулей и виртуальных хостов сосредоточены в 2 файлах, а не так как вы успели привыкнуть, когда для добавления нового виртуального хоста или модуля нужно всего лишь добавить симлинк в папку site-enabled. Так и я попался, разруливать конфиг апаче по новой мне очень не хотелось? по-этому я пошёл по лёгкому пути, запустил веб сервер в своей старой убунте, находясь при этом в дистрибутиве ArchLinux. Делает это просто, вот скрипт запуска:

cat bin/start_http.sh

#!/bin/bash
# монтируем необходимые для апача служебные директории
sudo mount --bind /dev/ /media/ubuntu/dev/
sudo mount --bind /proc/ /media/ubuntu/proc/
sudo mount --bind /media/home/ /media/ubuntu/home/
# используя chroot запускаем апача на разделе с дистрибутивом Ubutnu
sudo chroot /media/ubuntu/ /etc/init.d/apache2 start

вот скрипт остановки сервера:

cat bin/stop_http.sh

#!/bin/bash
# используя chroot останавливаем сервер
sudo chroot /media/ubuntu/ /etc/init.d/apache2 stop
sleep 5
# подождав 5 секунда(пока апач полностью не остановится) отмонтируем каталоги
sudo umount /media/ubuntu/dev/
sudo umount /media/ubuntu/proc/
sudo umount /media/ubuntu/home/

Для заметки: команда chroot позволяет изменить название корневого каталога, а это позволяет без особых усилий использовать отличные от целевой системы создавая виртуальные окружения, такой приём используется для создания безопасного окружения опасных сервисов типа: bind, apache, ntpd, изолируя эти сервисы от родительской системы. Взломав такую систему хакер получает доступ только к файловой системе ограниченной chroot и не имеет доступа к родительской системе. А так же достаточно просто запускать инородные приложения, для разгрузки своего домашнего компьютера я вынес mysql сервер на компьютер супруги, дал ему алиас mysql.xxx и расшарил во внутреннюю сеть, затем когда она перехала в Debian 5.0-AMD64 я в чруте запустил mysql сервер

  1. sudo chroot /media/ubuntu
  2. mount /proc # без /proc mysql не запуститься
  3. /etc/init.d/mysql start

Конечно я несколько потерял в производительности, но пока я не провёл тесты и не знаю СКОЛЬКО, для меня это решение приемлимо

 

похожие страницы

  1. Установка Ubuntu 12.04 на LVM
  2. Создание chroot для враждебного пользователя
  3. Перенос ядра из другого дистрибутива
  4. apache генерация списка файлов в utf-8
  5. Как обойти ограничение DynDNS на создание wildcard