Linuxサーバーにログインしています。 Red Hatディストリビューションだと思います。
コマンドa2ensite
およびa2dissite
は使用できません。 /etc/httpd
ディレクトリで、sites-enabled
またはsites-available
についての言及はありません。
サイトが現在/etc/httpd/conf.d/ssl.conf
のディレクティブを実行していると確信しています。 a2dissite ssl
を実行してから、Webサーバーをリロードします。これを達成するにはどうすればよいですか?
a2ensite
などは、Debianベースのシステムで使用できるコマンドであり、RHベースのディストリビューションでは使用できません。
それらが行うことは、/etc/Apache2/sites-available
およびmods-available
の構成ファイル部分から/etc/Apache2/sites-enabled
などへのシンボリックリンクを管理することです。例えば。構成ファイル/etc/Apache2/sites-avaible/example.com
でvhostを定義している場合、a2ensite example.com
は/etc/Apache2/sites-enabled
にこのファイルへのシンボリックリンクを作成し、Apache構成を再ロードします。メインのApache構成ファイルには、/etc/Apache2/sites-enabled
のすべてのファイルを含む行が含まれているため、ランタイム構成に組み込まれます。
RHELでこの構造を模倣することは非常に簡単です。 /etc/httpd/
にsites-enabled
およびsites-available
という名前の2つのディレクトリを追加し、仮想ホストをsites-available
のファイルに追加します。その後、行を追加します
include ../sites-enabled
/etc/httpd/conf/httpd.conf
へ。これで、sites-enabled
へのシンボリックリンクを作成し、service httpd reload
またはapachectl
を使用して構成を再ロードできます。
Svenの優れた回答の追加として、a2ensiteとa2dissiteの動作を模倣する2つのスクリプト。元の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