2013-09-20 4 views
0

Я бы хотел (желательно с помощью Python) программно управлять Apache httpd в Windows. То есть, остановите и запустите службу, и в идеале добавьте/удалите/остановите/запустите отдельные сайты.Можно ли программно управлять Apache httpd в Windows?

Я не нашел существующих библиотек, которые это делают. Является ли это бессмысленным делом (и если да, почему)?

Или, возможно ли это сделать из командной строки, и поэтому просто нужно сделать соответствующие вызовы командной строки из моей программы?

ответ

2

Запуск и остановка служб была реализована многими библиотеками, например, смотрите здесь:

http://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch18.htm

Управление отдельных веб-сайтов (VirtualHosts) в значительной степени зависит от расположения файла конфигурации. Например, на Debian была разработана специальная структура каталогов (/etc/apache2/sites-available, /etc/apache2/sites-enabled ...), а определенные скрипты управляют копиями файлов в каталог «enabled» (a2ensite, a2dissite).

Такой формат не существует в стандартном дистрибутиве Windows Apache, поэтому вам действительно нужно реплицировать его и создавать соответствующие скрипты или apis. Это решение, которое я рекомендую.

Другим подходом было бы проанализировать конфигурацию apache напрямую и закомментировать определенные разделы по мере необходимости, но это опасно, поскольку любая ошибка при редактировании этих файлов может полностью перезапустить apache.

Смежные вопросы