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

Я пишу сценарий оболочки, чтобы сделать некоторую конфигурацию веб-сервера. Мне нужно отключить все активные виртуальные хосты. a2dissite не принимает несколько аргументов, поэтому я не могу

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

должен ли я использовать find? Безопасно ли вручную удалять символические ссылки в /etc/apache2/sites-enabled?

9 ответов


ваш скрипт только Debian? Если это так, вы можете безопасно удалить все символические ссылки в разрешенных сайтах, которые будут работать до тех пор, пока все сайты написаны правильно, в каталоге доступные сайты.

например:

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

защитит вас от того, кто на самом деле написал файл вместо символической ссылки в этом каталоге.

(удалите-i из rm для автоматического скрипта, конечно)


после немного больше исследований, я узнал, что a2dissite - это просто сценарий оболочки, и он в основном просто вызывает rm. Поэтому, как и другие ответы, я согласен, что это безопасно

rm /etc/apache2/sites-enabled/*

ubuntu 12.04 lts / ubuntu 16.04 lts

вы можете просто сделать следующее [NB: вам может понадобиться разрешение root sudo a2dissite]

a2dissite *

или

a2dissite

и он предложит вам те, которые вы хотите сделать

когда вы полностью отключили сайты перезагрузите сервер apache2

sudo systemctl restart apache2

или просто перезагрузите конфигурацию apache без полного перезапуска:

sudo service apache2 reload

вы можете просто удалить символические ссылки или переместить весь каталог. Кроме этих ссылок, нет никакой специальной базы данных или других метаданных.


удалить хост файл просто удалить его. Если вы просто хотите dissable сайт, используйте

sudo a2dissite sitename

перезапустить apache2 не

sudo /etc/init.d/apache2 reload

снова удалить (удалить)его полностью из системы,

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

Я бы также сначала отключил его перед удалением файла


Я никогда не использую "a2dissite" и всегда удаляю и создаю ссылки в /etc/apache2/sites-включен вручную, поэтому да, я бы сказал, что это довольно безопасно.


вот мой обходной путь, первый тип:

# a2dissite (введите эту команду без каких-либо аргументов, она предложит вам выбрать следующую строку)

ваш выбор: siteA siteB siteC siteD

какой сайт(ы) вы хотите отключить (подстановочные знаки ok)?

теперь вы просто скопировать все выше список сайтов (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;)