Как отключить все виртуальные хосты apache?
-
06-07-2019 - |
Вопрос
Я пишу сценарий оболочки для выполнения некоторой настройки веб-сервера.Мне нужно отключить все активные в данный момент виртуальные хосты. a2dissite
не принимает несколько аргументов, поэтому я не могу сделать
a2dissite `ls /etc/apache2/sites-enabled`
Должен ли я использовать find
?Безопасно ли вручную удалять символические ссылки в /etc/apache2/sites-enabled
?
Решение
Ваш скрипт только для Debian? Если это так, вы можете безопасно удалить все символические ссылки на сайтах с включенной поддержкой, которые будут работать до тех пор, пока все сайты написаны правильно, в каталоге сайтов, доступных.
Например:
find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;
защитит вас от того, кто на самом деле написал файл вместо символической ссылки в этом каталоге.
(конечно, удалите -i из rm для автоматического скрипта)
Другие советы
После небольшого исследования я обнаружил, что a2dissite
- это всего лишь скрипт оболочки, и он в основном просто вызывает rm
. Так что, как и другие ответы, я согласен, что это безопасно сделать
rm /etc/apache2/sites-enabled/*
ubuntu 12.04lts / ubuntu 16.04lts
Вы можете просто сделать следующее [NB:возможно, вам потребуется разрешение 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 siteC ) и вставьте его в качестве ответа, затем нажмите 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;)