15

我正在编写一个 shell 脚本来进行一些 Web 服务器配置。我需要禁用所有当前活动的虚拟主机。a2dissite不接受多个参数,所以我不能

a2dissite `ls /etc/apache2/sites-enabled`

我应该使用find吗?手动删除符号链接是否安全/etc/apache2/sites-enabled

4

9 回答 9

22

您可以执行以下操作:

sudo a2dissite '*'

或者:

sudo a2dissite

它会提示您选择要禁用的那些。

禁用站点后,重新启动 apache2 服务器:

sudo systemctl restart apache2

或者只是重新加载 apache 配置而不完全重启:

sudo service apache2 reload
于 2014-07-03T06:12:31.343 回答
13

经过一番研究,我发现这a2dissite只是一个 shell 脚本,它基本上只是调用rm. 所以,和其他回复一样,我同意这样做是安全的

rm /etc/apache2/sites-enabled/*
于 2008-10-08T14:55:38.500 回答
12

你的脚本只有 Debian 吗?如果是这样,您可以安全地删除启用站点中的所有符号链接,只要所有站点都已正确写入,站点可用目录中的所有符号链接就可以工作。

例如:

 find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;

将保护您免受实际在该目录中编写文件而不是符号链接的人的侵害。

(当然,从 rm 中删除 -i 以获得自动脚本)

于 2008-10-08T14:51:14.703 回答
5

要删除主机文件,只需将其删除。如果您只想禁用该站点,请使用

sudo a2dissite sitename

重启apache2

sudo /etc/init.d/apache2 reload

再次从系统中完全删除(删除)它,

sudo rm /etc/apache2/sites-available/sitename

我也会在删除文件之前先禁用它

于 2014-12-27T21:13:34.253 回答
2

您可以删除符号链接,或将整个目录移开。除了这些链接之外,没有特殊的数据库或其他元数据。

于 2008-10-08T14:51:12.193 回答
1

我从不使用'a2dissite',总是手动删除和创建 /etc/apache2/sites-enabled 中的链接,所以是的,我会说它非常安全。

于 2008-10-08T14:52:33.780 回答
0

这是我的解决方法,第一种类型:

# a2dissite(键入此命令不带任何参数,它会提示您选择下一行)

您的选择是:siteA siteB siteC siteD

您要禁用哪些站点(通配符可以)?

现在您只需复制以上所有站点列表(siteA siteB siteC siteD)并粘贴为您的答案,然后输入。

输出结果将是:

removing dangling symlink /etc/apache2/sites-enabled/siteA.conf
removing dangling symlink /etc/apache2/sites-enabled/siteB.conf
removing dangling symlink /etc/apache2/sites-enabled/siteC.conf
removing dangling symlink /etc/apache2/sites-enabled/siteD.conf

这种方法将帮助我们选择性地选择应该删除或完整的站点名称的长列表。

于 2017-08-12T04:30:56.133 回答
-1

您可以编辑 httpd.conf 并删除虚拟主机的包含行(在文件底部)

于 2008-10-08T14:45:22.140 回答
-3

显然,你可以安装最新的 Ubuntu ;)

于 2008-10-08T14:52:46.790 回答