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ąć?
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.
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
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
a2dissite.sh
źródło