我正在编写一个 shell 脚本来进行一些 Web 服务器配置。我需要禁用所有当前活动的虚拟主机。a2dissite
不接受多个参数,所以我不能
a2dissite `ls /etc/apache2/sites-enabled`
我应该使用find
吗?手动删除符号链接是否安全/etc/apache2/sites-enabled
?
我正在编写一个 shell 脚本来进行一些 Web 服务器配置。我需要禁用所有当前活动的虚拟主机。a2dissite
不接受多个参数,所以我不能
a2dissite `ls /etc/apache2/sites-enabled`
我应该使用find
吗?手动删除符号链接是否安全/etc/apache2/sites-enabled
?
您可以执行以下操作:
sudo a2dissite '*'
或者:
sudo a2dissite
它会提示您选择要禁用的那些。
禁用站点后,重新启动 apache2 服务器:
sudo systemctl restart apache2
或者只是重新加载 apache 配置而不完全重启:
sudo service apache2 reload
经过一番研究,我发现这a2dissite
只是一个 shell 脚本,它基本上只是调用rm
. 所以,和其他回复一样,我同意这样做是安全的
rm /etc/apache2/sites-enabled/*
你的脚本只有 Debian 吗?如果是这样,您可以安全地删除启用站点中的所有符号链接,只要所有站点都已正确写入,站点可用目录中的所有符号链接就可以工作。
例如:
find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;
将保护您免受实际在该目录中编写文件而不是符号链接的人的侵害。
(当然,从 rm 中删除 -i 以获得自动脚本)
要删除主机文件,只需将其删除。如果您只想禁用该站点,请使用
sudo a2dissite sitename
重启apache2
sudo /etc/init.d/apache2 reload
再次从系统中完全删除(删除)它,
sudo rm /etc/apache2/sites-available/sitename
我也会在删除文件之前先禁用它
您可以删除符号链接,或将整个目录移开。除了这些链接之外,没有特殊的数据库或其他元数据。
我从不使用'a2dissite',总是手动删除和创建 /etc/apache2/sites-enabled 中的链接,所以是的,我会说它非常安全。
这是我的解决方法,第一种类型:
# 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
这种方法将帮助我们选择性地选择应该删除或完整的站点名称的长列表。
您可以编辑 httpd.conf 并删除虚拟主机的包含行(在文件底部)
显然,你可以安装最新的 Ubuntu ;)