a2ensiteとa2dissiteの方法は?


10

Linuxサーバーにログインしています。Red Hatディストリビューションだと思います。

コマンドa2ensitea2dissiteは使用できません。では/etc/httpd、ディレクトリ、私は、任意の言及が表示されませんsites-enabledsites-available

サイトが現在のディレクティブを実行していると確信しています/etc/httpd/conf.d/ssl.conf。を実行してa2dissite sslから、Webサーバーをリロードします。これを達成するにはどうすればよいですか?

回答:


24

a2ensite などは、Debianベースのシステムで使用できるコマンドであり、RHベースのディストリビューションでは使用できません。

彼らは何をやっていることで、設定ファイルのパーツからシンボリックリンクを管理することである/etc/apache2/sites-availablemods-availableする/etc/apache2/sites-enabledと、上のようにします。たとえば、設定ファイル/etc/apache2/sites-avaible/example.comで仮想ホストを定義している場合a2ensite example.com、このファイルへのシンボリックリンクを作成し/etc/apache2/sites-enabled、Apache設定をリロードします。メインのApache構成ファイルには、すべてのファイルが含まれる行が含まれ/etc/apache2/sites-enabledているため、ランタイム構成に組み込まれます。

RHELでこの構造を模倣することは非常に簡単です。2つのディレクトリを追加/etc/httpd/命名sites-enabledし、sites-availableそして内のファイルにあなたのバーチャルホストを追加しますsites-available。その後、行を追加します

include ../sites-enabled 

/etc/httpd/conf/httpd.conf。これで、へのシンボリックリンクを作成sites-enabledし、service httpd reloadまたはを使用して設定をリロードできますapachectl


1
ええ、わかりました。つまり、基本的に/etc/httpd/conf.dは、サイト対応の同等のものとして機能します。そのため、そのディレクトリからssl.confを削除し、httpdを再起動/再ロードするだけで私の変更が反映されました。それはかっこいい
ジョン

2

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

「サイトの名前」はどうあるべきですか?
ewizard 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.