1

我目前正在为我的网络服务器编写一个管理页面,以使我自己更容易从我的浏览器创建新的 apache 域。一切都按我的意愿工作,除了一件事。

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

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

任何帮助将不胜感激。

4

1 回答 1

4
$ which a2ensite
/usr/sbin/a2ensite

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

A2ENSITE=/usr/sbin/a2ensite
...
${A2ENSITE} new-domain.com
于 2013-01-18T00:55:42.890 回答