Как включить весь сайт confs с a2ensite (при переходе через 000-default.conf & amp; & amp; default-ssl.conf)?

Eric Python IDE

Eric - полнофункциональный редактор Python и Ruby и IDE, написанный на Python. Он основан на кросс-платформенном наборе инструментов Qt GUI, объединяющем гибкий редактор редактора Scintilla. Он предназначен для использования в качестве ежедневного «быстрого и грязного» редактора, а также для использования в качестве профессионального инструмента управления проектами, объединяющего множество дополнительных функций. Python предлагает профессиональный кодер. Eric   4 включает в себя систему плагинов, которая позволяет легко расширять функциональность IDE с загружаемыми из сети плагинами.

Текущими стабильными версиями являются Eric   4 на основе Qt   4 и Python   2 и Eric   5 на основе Python   3 и Qt   4.

10
задан 5 June 2017 в 09:51

18 ответов

Возможно, просто используйте find в вашем каталоге config.

find /etc/apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;

Это находит все ваши файлы конфигурации, которые не имеют «по умолчанию» в их имени и активируют их.

14
ответ дан 22 May 2018 в 22:31
  • 1
    Вы также должны искать файлы с расширением *.conf. Или же a2ensite пожаловался бы, что сайт не существует – Dan 25 May 2017 в 12:47
  • 2
    @Dan не нужно, так как мы выполняем поиск в каталоге conf. – Ziazis 25 May 2017 в 19:29
  • 3
    Я думаю, этот метод также хорош, в принципе, при создании Nginx Sblocks, а не только для Apache Vhosts. – JohnDoea 28 May 2017 в 07:21

Возможно, просто используйте find в вашем каталоге config.

find /etc/apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;

Это находит все ваши файлы конфигурации, которые не имеют «по умолчанию» в их имени и активируют их.

14
ответ дан 18 July 2018 в 13:07

Возможно, просто используйте find в вашем каталоге config.

find /etc/apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;

Это находит все ваши файлы конфигурации, которые не имеют «по умолчанию» в их имени и активируют их.

15
ответ дан 24 July 2018 в 20:06

Вам нужно перейти к /etc/apache2/sites-available, а затем выполнить команду:

sudo a2ensite *

Включить все сайты в каталоге.

И затем перезагрузите apache с помощью sudo service apache2 reload.

Итак, ваша последовательность команд должна быть такой:

cd /etc/apache2/sites-available
sudo a2ensite *
sudo service apache2 reload
6
ответ дан 22 May 2018 в 22:31
  • 1
    Это также позволяет conf conf default-ssl.conf ... Это видно из выхода Enabling site default-ssl. – JohnDoea 18 May 2017 в 14:23
  • 2
    Вы можете использовать dpkg -S, чтобы узнать, есть ли файл конфигурации из пакета. – muru 21 May 2017 в 15:53

скопируйте следующие строки в имя файла apache_enable.sh

cd /etc/apache2/sites-available/
a2ensite *
service apache2 reload

и дайте команде read + execute apache_enable.sh и выполните скрипт с использованием пользователя root

1
ответ дан 22 May 2018 в 22:31

Независимо от того, каково наше текущее местоположение, команда sudo a2ensite "*.conf" попытается включить все файлы конфигурации, помещенные в /etc/apache2/sites-available/.

Затем мы можем использовать a2dissite 000-default.conf default-ssl.conf для отключения конфигураций по умолчанию для Apache, а затем мы можем использовать systemctl restart apache2.service для его перезапуска.

Мы можем запускать все это как одну команду: [ ! d2]

sudo bash -c "a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service"

Что-то еще, мы можем создать пользовательскую команду через функцию в bash:

function a2ensites {
        sudo bash -c "a2ensite '*.conf' && a2dissite 000-default default-ssl && systemctl restart apache2.service"
}
export -f a2ensites

Теперь у нас есть команда a2ensites, предназначенная для выполнения этой задачи. Чтобы сделать эту команду постоянной, мы должны поместить вышеуказанные строки в нижнюю часть файла ~/.bashrc, а затем source. Следующий простой скрипт выполнит эту задачу:

 printf "\nfunction a2ensites { \n\tsudo bash -c \"a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service\" \n}\nexport -f a2ensites\n" | tee -a $HOME/.bashrc; source $HOME/.bashrc
1
ответ дан 22 May 2018 в 22:31
  • 1
    Первая строка неверна. Подстановочный символ * расширяется до того, как он будет передан команде a2ensite в моем случае. Однако это работает sudo a2ensite "*.conf". – Dan 25 May 2017 в 13:01
  • 2
    Привет, @Dan, в моем случае (Ubuntu 16.04.2) он работает правильно без кавычек. Однако я обновил ответ. Не могли бы вы проверить правильность работы a2ensite '*.conf' в вашей системе? – pa4080 25 May 2017 в 14:14
  • 3
    Да, это работает, я на Ubuntu 17.04 кстати. – Dan 25 May 2017 в 18:04

Выполнение a2ensite /var/www/html/*/ приведет к тому, что Apache включит каждый URL-адрес сайта с таким же именем, как и dir сайта.

Как побочный эффект, он также попытается сопоставить параметры сайта, которые не соответствуют для файлов conf-файлов сайта, как прогнозировалось из следующего вывода, но я думаю, что это можно игнорировать безопасно:

ERROR: Site /var/www/html/domain.tld1 does not exist!
ERROR: Site /var/www/html/domain.tld2 does not exist!
ERROR: Site /var/www/html/nice_directory does not exist!
ERROR: Site /var/www/html/nice_file does not exist!

Вероятно, вам придется перезапустить Apache после включения файлов conf:

systemctl restart apache2.service
0
ответ дан 22 May 2018 в 22:31
  • 1
    Я не уверен, но почему ваша настройка сайта в папке webroot? Попробуйте использовать папку /etc/apache2/sites-available для конфигураций для ваших сайтов. Как только вы включите их через a2ensite, они автоматически привяжутся к /etc/apache2/sites-enabled. То, что вы делаете сейчас, довольно странно, и каждый, у кого есть доступ к вашему веб-серверу, может заглянуть в ваши конфигурации? – Ziazis 18 May 2017 в 13:19
  • 2
    Привет @Ziazis. Я действительно не понимаю, почему вы даже спрашиваете меня, «все, у кого есть доступ к вашему веб-серверу, могут заглянуть в ваши конфигурации?» Я единственный, кто использует сервер; Если бы я не был, то обычно у других пользователей не было бы доступа к корню документа. В любом случае, можете ли вы прояснить, почему вы спрашиваете об этом и что именно вы считаете неправильным? – JohnDoea 18 May 2017 в 14:15
  • 3
    Ну, я не уверен, для чего вы используете этот веб-сервер. Однако если это живая система с доступом, доступным третьей стороне, вы не хотите, чтобы ваши файлы конфигурации лежали в /var/www/html, так как это DocumentRoot для default.html -Site. Так что в вашем случае вы, кажется, управляете конфигурациями там ... Это как есть с открытым ртом, не делайте этого ;-). – Ziazis 22 May 2017 в 11:20
  • 4
    Я не понимаю. Вы думаете, что я поместил файлы conf в корень документа? Потому что я этого не сделал. Вы предлагаете мне положить их туда? Я хотел бы избежать этого ... Я просто хочу включить все из них, которые не являются 000-default и default-ssl. BTW, я использую веб-сервер для хранения личных сайтов. – JohnDoea 22 May 2017 в 12:51
  • 5
    Ах, я вижу, вы назвали все ваши RootDirectories такими же, как ваши файлы конфигурации. И здесь я подумал, что вы изменили конфигурацию apache2, чтобы /var/www/html как ваша папка конфигурации. Тогда Nvm. То, что вам действительно нужно, это просто find ./ -type f -and -not -name "*default*" -exec a2ensite {} \; – Ziazis 22 May 2017 в 13:02

Переместите конфигурацию по умолчанию в другую папку, а затем * будет работать для вас, как вы этого хотите.

Перейдите в папку «sites-available», поскольку она работает только в этой папке.

cd / etc / apache2 / sites-available / sudo a2ensite *

]

0
ответ дан 22 May 2018 в 22:31
  • 1
    AFAIK, вы можете сделать это из любой точки системы, когда вы документируете root, это / var / www / html? – JohnDoea 26 May 2017 в 23:06
  • 2
    Важной частью является папка / etc / apache2_or_other / sites-available. Корень документа затем связан в этой конфигурации. У вас может быть ваш корень в / usr / share / htlm, и он ничего не изменит, если вы не напишете его в файле conf. Я могу быть где угодно на своем сервере, если файлы conf находятся в папке, доступной сайтам, a2ensite выполнит свою работу. – Carobell 29 May 2017 в 15:10
  • 3
    Отредактировал мой ответ, поскольку первый вариант не работает . – Carobell 29 May 2017 в 15:19

Переместите конфигурацию по умолчанию в другую папку, а затем * будет работать для вас, как вы этого хотите.

Перейдите в папку «sites-available», поскольку она работает только в этой папке.

cd / etc / apache2 / sites-available / sudo a2ensite *

]

0
ответ дан 18 July 2018 в 13:07

Выполнение a2ensite /var/www/html/*/ приведет к тому, что Apache включит каждый URL-адрес сайта с таким же именем, как и dir сайта.

Как побочный эффект, он также попытается сопоставить параметры сайта, которые не соответствуют для файлов conf-файлов сайта, как прогнозировалось из следующего вывода, но я думаю, что это можно игнорировать безопасно:

ERROR: Site /var/www/html/domain.tld1 does not exist! ERROR: Site /var/www/html/domain.tld2 does not exist! ERROR: Site /var/www/html/nice_directory does not exist! ERROR: Site /var/www/html/nice_file does not exist!

Вероятно, вам придется перезапустить Apache после включения файлов conf:

systemctl restart apache2.service
0
ответ дан 18 July 2018 в 13:07

скопируйте следующие строки в имя файла apache_enable.sh

cd /etc/apache2/sites-available/ a2ensite * service apache2 reload

и дайте команде read + execute apache_enable.sh и выполните скрипт с использованием пользователя root

1
ответ дан 18 July 2018 в 13:07

Независимо от того, каково наше текущее местоположение, команда sudo a2ensite "*.conf" попытается включить все файлы конфигурации, помещенные в /etc/apache2/sites-available/.

Затем мы можем использовать a2dissite 000-default.conf default-ssl.conf для отключения конфигураций по умолчанию для Apache, а затем мы можем использовать systemctl restart apache2.service для его перезапуска.

Мы можем запускать все это как одну команду: [ ! d2] sudo bash -c "a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service"

Что-то еще, мы можем создать пользовательскую команду через функцию в bash:

function a2ensites { sudo bash -c "a2ensite '*.conf' && a2dissite 000-default default-ssl && systemctl restart apache2.service" } export -f a2ensites

Теперь у нас есть команда a2ensites, предназначенная для выполнения этой задачи. Чтобы сделать эту команду постоянной, мы должны поместить вышеуказанные строки в нижнюю часть файла ~/.bashrc, а затем source. Следующий простой скрипт выполнит эту задачу:

printf "\nfunction a2ensites { \n\tsudo bash -c \"a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service\" \n}\nexport -f a2ensites\n" | tee -a $HOME/.bashrc; source $HOME/.bashrc
1
ответ дан 18 July 2018 в 13:07

Вам нужно перейти к /etc/apache2/sites-available, а затем выполнить команду:

sudo a2ensite *

Включить все сайты в каталоге.

И затем перезагрузите apache с помощью sudo service apache2 reload.

Итак, ваша последовательность команд должна быть такой:

cd /etc/apache2/sites-available sudo a2ensite * sudo service apache2 reload
6
ответ дан 18 July 2018 в 13:07

Переместите конфигурацию по умолчанию в другую папку, а затем * будет работать для вас, как вы этого хотите.

Перейдите в папку «sites-available», поскольку она работает только в этой папке.

cd / etc / apache2 / sites-available / sudo a2ensite *

]

0
ответ дан 24 July 2018 в 20:06
  • 1
    AFAIK, вы можете сделать это из любой точки системы, когда вы документируете root, это / var / www / html? – JohnDoea 26 May 2017 в 23:06
  • 2
    Важной частью является папка / etc / apache2_or_other / sites-available. Корень документа затем связан в этой конфигурации. У вас может быть ваш корень в / usr / share / htlm, и он ничего не изменит, если вы не напишете его в файле conf. Я могу быть где угодно на своем сервере, если файлы conf находятся в папке, доступной сайтам, a2ensite выполнит свою работу. – Carobell 29 May 2017 в 15:10
  • 3
    Отредактировал мой ответ, поскольку первый вариант не работает . – Carobell 29 May 2017 в 15:19

Выполнение a2ensite /var/www/html/*/ приведет к тому, что Apache включит каждый URL-адрес сайта с таким же именем, как и dir сайта.

Как побочный эффект, он также попытается сопоставить параметры сайта, которые не соответствуют для файлов conf-файлов сайта, как прогнозировалось из следующего вывода, но я думаю, что это можно игнорировать безопасно:

ERROR: Site /var/www/html/domain.tld1 does not exist! ERROR: Site /var/www/html/domain.tld2 does not exist! ERROR: Site /var/www/html/nice_directory does not exist! ERROR: Site /var/www/html/nice_file does not exist!

Вероятно, вам придется перезапустить Apache после включения файлов conf:

systemctl restart apache2.service
0
ответ дан 24 July 2018 в 20:06
  • 1
    Я не уверен, но почему ваша настройка сайта в папке webroot? Попробуйте использовать папку /etc/apache2/sites-available для конфигураций для ваших сайтов. Как только вы включите их через a2ensite, они автоматически привяжутся к /etc/apache2/sites-enabled. То, что вы делаете сейчас, довольно странно, и каждый, у кого есть доступ к вашему веб-серверу, может заглянуть в ваши конфигурации? – Ziazis 18 May 2017 в 13:19
  • 2
    Привет @Ziazis. Я действительно не понимаю, почему вы даже спрашиваете меня, «все, у кого есть доступ к вашему веб-серверу, могут заглянуть в ваши конфигурации?» Я единственный, кто использует сервер; Если бы я не был, то обычно у других пользователей не было бы доступа к корню документа. В любом случае, можете ли вы прояснить, почему вы спрашиваете об этом и что именно вы считаете неправильным? – JohnDoea 18 May 2017 в 14:15
  • 3
    Ну, я не уверен, для чего вы используете этот веб-сервер. Однако если это живая система с доступом, доступным третьей стороне, вы не хотите, чтобы ваши файлы конфигурации лежали в /var/www/html, так как это DocumentRoot для default.html -Site. Так что в вашем случае вы, кажется, управляете конфигурациями там ... Это как есть с открытым ртом, не делайте этого ;-). – Ziazis 22 May 2017 в 11:20
  • 4
    Я не понимаю. Вы думаете, что я поместил файлы conf в корень документа? Потому что я этого не сделал. Вы предлагаете мне положить их туда? Я хотел бы избежать этого ... Я просто хочу включить все из них, которые не являются 000-default и default-ssl. BTW, я использую веб-сервер для хранения личных сайтов. – JohnDoea 22 May 2017 в 12:51
  • 5
    Ах, я вижу, вы назвали все ваши RootDirectories такими же, как ваши файлы конфигурации. И здесь я подумал, что вы изменили конфигурацию apache2, чтобы /var/www/html как ваша папка конфигурации. Тогда Nvm. То, что вам действительно нужно, это просто find ./ -type f -and -not -name "*default*" -exec a2ensite {} \; – Ziazis 22 May 2017 в 13:02

скопируйте следующие строки в имя файла apache_enable.sh

cd /etc/apache2/sites-available/ a2ensite * service apache2 reload

и дайте команде read + execute apache_enable.sh и выполните скрипт с использованием пользователя root

1
ответ дан 24 July 2018 в 20:06

Независимо от того, каково наше текущее местоположение, команда sudo a2ensite "*.conf" попытается включить все файлы конфигурации, помещенные в /etc/apache2/sites-available/.

Затем мы можем использовать a2dissite 000-default.conf default-ssl.conf для отключения конфигураций по умолчанию для Apache, а затем мы можем использовать systemctl restart apache2.service для его перезапуска.

Мы можем запускать все это как одну команду: [ ! d2] sudo bash -c "a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service"

Что-то еще, мы можем создать пользовательскую команду через функцию в bash:

function a2ensites { sudo bash -c "a2ensite '*.conf' && a2dissite 000-default default-ssl && systemctl restart apache2.service" } export -f a2ensites

Теперь у нас есть команда a2ensites, предназначенная для выполнения этой задачи. Чтобы сделать эту команду постоянной, мы должны поместить вышеуказанные строки в нижнюю часть файла ~/.bashrc, а затем source. Следующий простой скрипт выполнит эту задачу:

printf "\nfunction a2ensites { \n\tsudo bash -c \"a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart apache2.service\" \n}\nexport -f a2ensites\n" | tee -a $HOME/.bashrc; source $HOME/.bashrc
1
ответ дан 24 July 2018 в 20:06
  • 1
    Первая строка неверна. Подстановочный символ * расширяется до того, как он будет передан команде a2ensite в моем случае. Однако это работает sudo a2ensite "*.conf". – Dan 25 May 2017 в 13:01
  • 2
    Привет, @Dan, в моем случае (Ubuntu 16.04.2) он работает правильно без кавычек. Однако я обновил ответ. Не могли бы вы проверить правильность работы a2ensite '*.conf' в вашей системе? – pa4080 25 May 2017 в 14:14
  • 3
    Да, это работает, я на Ubuntu 17.04 кстати. – Dan 25 May 2017 в 18:04

Вам нужно перейти к /etc/apache2/sites-available, а затем выполнить команду:

sudo a2ensite *

Включить все сайты в каталоге.

И затем перезагрузите apache с помощью sudo service apache2 reload.

Итак, ваша последовательность команд должна быть такой:

cd /etc/apache2/sites-available sudo a2ensite * sudo service apache2 reload
6
ответ дан 24 July 2018 в 20:06
  • 1
    Это также позволяет conf conf default-ssl.conf ... Это видно из выхода Enabling site default-ssl. – JohnDoea 18 May 2017 в 14:23
  • 2
    Вы можете использовать dpkg -S, чтобы узнать, есть ли файл конфигурации из пакета. – muru 21 May 2017 в 15:53

Другие вопросы по тегам:

Похожие вопросы: