Я вошел на сервер Linux. Я думаю, что это дистрибутив Red Hat.
Команды a2ensiteи a2dissiteнедоступны. В /etc/httpdкаталоге я не вижу упоминаний sites-enabledили sites-available.
Я уверен, что сайт в настоящее время выполняет директивы /etc/httpd/conf.d/ssl.conf. Я хотел бы сделать, а a2dissite sslзатем перезагрузить веб-сервер. Как этого добиться?
a2ensite и т.д. - это команды, доступные в системах на основе Debian и недоступные в дистрибутивах на основе RH.
Что они делают это , чтобы управлять символическими ссылками из частей файла конфигурации в /etc/apache2/sites-availableи mods-availableк /etc/apache2/sites-enabledи так далее. Например, если в файле конфигурации определен vhost /etc/apache2/sites-avaible/example.com, a2ensite example.comсоздайте символическую ссылку на этот файл /etc/apache2/sites-enabledи перезагрузите конфигурацию apache. Основной файл конфигурации Apache содержит строки, в которые входит каждый файл, /etc/apache2/sites-enabledи, следовательно, они включаются в конфигурацию времени выполнения.
Довольно легко подражать этой структуре в RHEL. Добавьте две директории в /etc/httpd/named sites-enabledи sites-availableдобавьте vhosts в файлы в sites-available. После этого добавьте строку
include ../sites-enabled
к /etc/httpd/conf/httpd.conf. Теперь вы можете создать символические ссылки sites-enabledи затем перезагрузить конфигурацию с помощью service httpd reloadили apachectl.
А, понятно. Таким образом, в основном /etc/httpd/conf.d действует как эквивалент сайтов с поддержкой. Поэтому, просто удалив файл ssl.conf из этого каталога и перезапустив / перезагрузив httpd, я получил все изменения. Это круто
Джон
2
В качестве дополнения к превосходному ответу Свена, два скрипта, которые имитируют поведение a2ensite и a2dissite. Оригинальный ensite.sh можно найти на 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
В качестве дополнения к превосходному ответу Свена, два скрипта, которые имитируют поведение a2ensite и a2dissite. Оригинальный ensite.sh можно найти на Github
a2ensite.sh
a2dissite.sh
источник