Jak a2ensite i a2dissite?


10

Jestem zalogowany na serwerze Linux. Myślę, że to dystrybucja Red Hat.

Polecenia a2ensitei a2dissitesą niedostępne. W /etc/httpdkatalogu nie widzę żadnej wzmianki o sites-enabledlub sites-available.

Jestem prawie pewien, że witryna wykonuje obecnie dyrektywy /etc/httpd/conf.d/ssl.conf. Chciałbym zrobić a2dissite ssl, a następnie ponownie załadować serwer WWW. Jak to osiągnąć?

Odpowiedzi:


24

a2ensite itd. to polecenia dostępne w systemach opartych na Debianie, które nie są dostępne w dystrybucjach opartych na RH.

Co robią jest zarządzanie dowiązania symboliczne z części pliku konfiguracyjnego /etc/apache2/sites-availablei mods-availabledo /etc/apache2/sites-enabledi tak dalej. Np. Jeśli masz vhost zdefiniowany w pliku konfiguracyjnym /etc/apache2/sites-avaible/example.com, a2ensite example.comutworzysz dowiązanie symboliczne do tego pliku /etc/apache2/sites-enabledi przeładuje konfigurację apache. Główny plik konfiguracyjny Apache zawiera wiersze, które zawierają każdy plik, /etc/apache2/sites-enableda zatem zostają one włączone do konfiguracji środowiska wykonawczego.

RHEL bardzo łatwo naśladuje tę strukturę. Dodaj dwa katalogi w /etc/httpd/nazwie sites-enabledi sites-availablenależy dodać vhosty do plików sites-available. Następnie dodaj linię

include ../sites-enabled 

do /etc/httpd/conf/httpd.conf. Możesz teraz tworzyć dowiązania symboliczne, sites-enableda następnie ponownie ładować konfigurację za pomocą service httpd reloadlub apachectl.


1
Ahh rozumiem. Zasadniczo /etc/httpd/conf.d działa jako odpowiednik witryn. Usunięcie ssl.conf z tego katalogu i ponowne uruchomienie / ponowne załadowanie httpd podniosło moje zmiany. To fajnie
John

2

Jako dodatek do doskonałej odpowiedzi Svena, dwa skrypty naśladujące zachowanie a2ensite i a2dissite. Oryginalny ensite.sh można znaleźć na Github

a2ensite.sh

#!bin/bash
# Enable a site, just like the a2ensite command.

SITES_AVAILABLE_CONFIG_DIR="/etc/httpd/sites-available";
SITES_ENABLED_CONFIG_DIR="/etc/httpd/sites-enabled";

if [ $1 ]; then
  if [ -f "${SITES_ENABLED_CONFIG_DIR}/${1}" ]; then
    echo "Site ${1} was already enabled!";
  elif [ ! -w $SITES_ENABLED_CONFIG_DIR ]; then
    echo "You don't have permission to do this. Try to run the command as root."
  elif [ -f "${SITES_AVAILABLE_CONFIG_DIR}/${1}" ]; then
    echo "Enabling site ${1}...";
    ln -s $SITES_AVAILABLE_CONFIG_DIR/$1 $SITES_ENABLED_CONFIG_DIR/$1
    echo "done!"
 else
   echo "Site not found!"
fi
else
  echo "Please, inform the name of the site to be enabled."
fi


a2dissite.sh

#!bin/bash
# Disable a site, just like a2dissite command, from Apache2.

SITES_AVAILABLE_CONFIG_DIR="/etc/httpd/sites-available";
SITES_ENABLED_CONFIG_DIR="/etc/httpd/sites-enabled";

if [ $1 ]; then
  if [ ! -f "${SITES_ENABLED_CONFIG_DIR}/${1}" ]; then
    echo "Site ${1} was already disabled!";
  elif [ ! -w $SITES_ENABLED_CONFIG_DIR ]; then
    echo "You don't have permission to do this. Try to run the command as root."
  elif [ -f "${SITES_AVAILABLE_CONFIG_DIR}/${1}" ]; then
    echo "Disabling site ${1}...";
    unlink $SITES_ENABLED_CONFIG_DIR/$1
    echo "done!"
  else
    echo "Site not found!"
  fi
else
  echo "Please, inform the name of the site to be enabled."
fi

jaka powinna być „nazwa strony”?
ewizard
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.