题
我正在编写一个 shell 脚本来进行一些 Web 服务器配置。我需要禁用所有当前活动的虚拟主机。 a2dissite
不接受多个参数,所以我不能这样做
a2dissite `ls /etc/apache2/sites-enabled`
我应该使用 find
?手动删除符号链接是否安全 /etc/apache2/sites-enabled
?
解决方案
你的脚本只有 Debian 吗?如果是这样,您可以安全地删除站点可用目录中启用的站点中的所有符号链接,只要所有站点都已正确写入,该符号链接就可以工作。
例如:
find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;
将保护您免受实际上在该目录中写入文件而不是符号链接的人的侵害。
(当然,从 rm 中删除 -i 以获取自动脚本)
其他提示
经过一番研究后,我发现 a2dissite
只是一个shell脚本,它基本上只是调用 rm
。所以,像其他回复一样,我同意这样做是安全的
rm /etc/apache2/sites-enabled/*
ubuntu 12.04lts / ubuntu 16.04lts
您可以执行以下操作[注意:您可能需要root权限sudo a2dissite]
a2dissite *
或者
a2dissite
它会提示你做你想做的事
当你完全禁用网站重启apache2服务器
sudo systemctl restart apache2
或者只是在没有完全重启的情况下重新加载apache配置:
sudo service apache2 reload
要删除主机文件,只需将其删除即可。 如果您只想不允许该网站,请使用
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 )并粘贴到您的答案中,然后按Enter键。
输出结果为:
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;)