Я использую сервер Ubuntu 16.04.2 с Apache2, на котором я храню свои личные сайты.
Чтобы включить все мои файлы конфигурации в /etc/apache2/sites-available
(кроме 000-default.conf
и ssl-default.conf
), я пошел /var/www/html
и выполнил a2ensite
.
Мне тогда сказали:
Your choices are:
000-default default-ssl domain.tld1 domain.tld2 domain.tld3 domain.tld4
Which site(s) do you want to enable (wildcards ok)?
Затем я сделал Ctrl+, Cстремясь выполнить что-то еще.
Я ищу способ автоматического включения всех конфессий сайта, не отмечая конкретного - я просто хочу запустить команду, которая включит все конфайсы сайта, которые я сам добавил.
*.conf
расширением. Или же a2ensite будет жаловаться, что сайт не существуетВам нужно перейти к
/etc/apache2/sites-available
и затем запустить команду:Это включит все сайты в каталоге. (файлы должны быть чем-то вроде xxx.conf)
А затем перезагрузите Apache с помощью
sudo service apache2 reload
.Итак, ваша последовательность команд должна быть такой:
источник
default-ssl.conf
... Это ясно из выводаEnabling site default-ssl.
dpkg -S
чтобы увидеть, если файл конфигурации из пакета.Независимо от того, где мы сейчас находимся, команда
sudo a2ensite "*.conf"
попытается включить все файлы конфигурации, размещенные в/etc/apache2/sites-available/
.Далее мы можем использовать,
a2dissite 000-default.conf default-ssl.conf
чтобы отключить настройки Apache по умолчанию, а затем мы можем использовать егоsystemctl restart apache2.service
для перезапуска.Мы можем запустить все это одной командой:
Более того, мы можем создать собственную команду с помощью функции в bash:
Теперь у нас есть команда , предназначенная для этой работы. Чтобы сделать эту команду постоянной, мы должны поместить вышеуказанные строки в конец файла, а затем - в него. Следующий простой скрипт выполнит эту задачу:
a2ensites
~/.bashrc
source
источник
*
Подстановочные расширяется , пока он не передаетсяa2ensite
команде в моем случае. Однако это работаетsudo a2ensite "*.conf"
.a2ensite '*.conf'
правильно ли работает в вашей системе?Выполнение
a2ensite /var/www/html/*/
заставит Apache включить каждый conf сайта, который имеет то же имя , что и dir сайта.Как побочный эффект, он также будет пытаться сопоставить каталоги сайтов, которые не соответствуют файлам conf сайта, как предсказано в следующем выводе, но я думаю, что это можно безопасно проигнорировать:
Скорее всего, вам потребуется перезапустить Apache после включения файлов conf:
источник
/etc/apache2/sites-available
папку для настройки ваших сайтов. Как только вы активируете их через a2ensite, они автоматически связываются с/etc/apache2/sites-enabled
. То, что вы делаете сейчас, довольно странно, и каждый, кто имеет доступ к вашему веб-серверу, может посмотреть ваши настройки?/var/www/html
так как это DocumentRootdefault.html
-Site. Так что в вашем случае вы, кажется, запускаете конфигурации там ... Это как еда с открытым ртом, не делайте этого ;-)./var/www/html
качестве папки конфигурации. Нвм тогда. Что вам на самом деле нужно, так это простоfind ./ -type f -and -not -name "*default*" -exec a2ensite {} \;
скопируйте и вставьте следующие строки в имя файла
apache_enable.sh
и дать команду read + execute
apache_enable.sh
и выполнить скрипт с использованием пользователя rootисточник
Переместите настройки по умолчанию в другую папку, и тогда * должен работать так, как вы этого хотите.
Перейдите в папку «sites-available», так как она работает только в этой папке.
источник