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