Apache 2:从Linux中的bash脚本调用'a2ensite'

时间:2013-01-18 00:46:15

标签: linux bash apache2

我目前正在为我的网络服务器编写管理页面,以便我自己更轻松地从浏览器创建新的apache域。除了一件事,一切都像我想要的那样工作。

详细说明:我的服务器上有一个cron作业,它以root身份运行bash脚本,检查包含我想要创建的域名列表的文件。如果文件包含域名,则会自动为此域创建新的虚拟主机,编辑主机文件,然后重新启动服务器。这一切都很完美,但是我希望脚本能够做的是激活它在重新启动服务器之前自动创建的域。我尝试使用apache 2的a2ensite命令执行此操作,但是脚本会返回错误,指出找不到命令。

有没有办法从bash脚本调用此命令,或者我可以调用此命令的替代方法吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

$ which a2ensite
/usr/sbin/a2ensite

通常,cron有一个非常严格的$ PATH,不包括/usr/sbin/sbin,它们是系统二进制文件(供root用户使用)。使用完全限定的路径名​​称始终是个好主意。因此,要么在脚本中调用/usr/bin/a2ensite,要么定义变量:

A2ENSITE=/usr/sbin/a2ensite
...
${A2ENSITE} new-domain.com