2008-10-08 6 views
6

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

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

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

ответ

9

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

Например:

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

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

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

-1

вы можете редактировать httpd.conf и удалить включение линию для виртуальных хостов (в нижней части файла)

+0

ну, это делается с помощью сценария оболочки, и нет уверенности в том, что структура файла httpd.conf равна – 2008-10-08 14:47:48

+0

, он может использовать регулярное выражение. включают в себя то же самое. он мог передать директорию vhosts в качестве аргумента и на основании того, что он может создать регулярное выражение – Mote 2008-10-08 14:49:54

+0

, также нет уверенности в том, что все vhosts определены в файлах конфигурации, связанных из каталога с поддержкой сайтов. – hop 2008-10-08 14:50:11

2

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

1

Я никогда не использую «a2dissite» и всегда удалять и создавать ссылки в/и т.д./apache2/сайты с поддержкой вручную, да, «Да, это довольно безопасно.

-3

Судя по всему, вы можете просто установить последнюю версию Ubuntu;)

11

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

rm /etc/apache2/sites-enabled/* 
7

убунту 12.04lts/убунту 16.04lts

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

a2dissite * 

Или

a2dissite 

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

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

Судо systemctl рестарт apache2

1

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

sudo a2dissite sitename 

Restart apache2

sudo /etc/init.d/apache2 reload 

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

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

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

0

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

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

Ваш выбор: SiteA SITEB Sitec Расположено

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

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

Такой подход поможет нам необязательно выбирать длинный список имен сайта должны быть удалены или нетронутыми.

 Смежные вопросы

  • Нет связанных вопросов^_^