Как отключить все виртуальные хосты apache?

StackOverflow https://stackoverflow.com/questions/183115

  •  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;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top