我想(最好使用Python)以编程方式控制Windows上的Apache httpd。也就是说,停止并启动服务,理想情况下添加/删除/停止/启动各个站点。
我没有找到任何现有的库来执行此操作。这是一种荒谬的努力(如果是这样,为什么)?
或者,是否可以从命令行执行此操作,因此只需在程序中进行适当的命令行调用即可?
答案 0 :(得分:2)
许多图书馆已经实施了启动和停止服务,例如见:
http://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch18.htm
控制各个网站(VirtualHosts)在很大程度上取决于配置文件布局。
例如,在Debian上,已经设计了一个特定的目录结构(/etc/apache2/sites-available
,/etc/apache2/sites-enabled
...),并且特定的脚本控制文件副本到“enabled”目录(a2ensite
,{{ 1}})。
默认的Windows Apache发行版中不存在此类布局,因此您需要复制它并创建相应的脚本或api。这是我推荐的解决方案。
另一种方法是直接解析apache配置并根据需要注释掉特定部分,但这是有风险的,因为编辑这些文件时的任何错误都可能使apache无法重新启动。