ウェブサイト検索

RHEL/CentOS 7.0 での仮想ホストの有効化/無効化オプションを使用した Apache 仮想ホストの作成


仮想ホスティング を使用すると、Apache Weberver は IP アドレス、ホスト名、または使用されているポート番号に基づいてさまざまなコンテンツを提供できます。このガイドでは、/etc/httpd/ パス上に 2 つのディレクトリを作成することで、Red Hat Enterprise Linux/CentOS 7.0 で仮想ホストを有効化および管理するDebian のようなアプローチを使用します。すべての有効および無効な Web サイト ファイル構成を保持します – sites-availablesites-enabled、およびコマンドとして機能する 2 種類のスクリプト (指定された仮想を有効にするものと無効にするもの)ホスト – a2ensitea2dissite。このアプローチには、httpd 構成ファイルをいじる必要がなく、すべての仮想ホストには 1 つの場所にある独自の構成ファイルがあり、有効なホストは単なるシンボリックリンクであるため、いくつかの利点があります。これにより、有効化、無効化、作成、または有効化のプロセスが行われます。削除は非常に簡単です。

要件

  1. RHEL/CentOS 7.0 への LAMP の基本インストール

RHEL/CentOS 7 での Apache 仮想ホストの作成と管理

1. まず、/etc/httpd/ パスに入力し、サイト利用可能ディレクトリとサイト対応ディレクトリを作成し、Apache httpd.conf を編集します。 b> ファイルを使用して、新しく有効になった Web サイトの場所を適用します。

cd /etc/httpd/
mkdir sites-available sites-enabled
nano conf/httpd.conf

2. httpd.conf ファイルの末尾に次のディレクティブ行を追加します。これにより、Apache が /etc/ にあるすべてのファイルを読み取り、解析します。 httpd/sites-enabled/.conf 拡張子で終わります。

IncludeOptional sites-enabled/*.conf

3. 次のステップでは、わかりやすい名前を使用して、サイトで利用可能な場所に新しい仮想ホストを作成します。この場合は、rheltest.lan.conf< を使用しました。 – 次のファイルをテンプレートとして使用します。

nano /etc/httpd/sites-available/rheltest.lan.conf

この構成をガイドとして使用してください。

<VirtualHost *:80>
        ServerName rheltest.lan
        DocumentRoot "/var/www/rheltest.lan"
                <Directory "/var/www/rheltest.lan">
                Options Indexes FollowSymLinks MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.      
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
           </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
        ErrorLog  /var/log/httpd/rheltest.lan-error.log
        CustomLog /var/log/httpd/rheltest.lan-access.log combined
</VirtualHost>

4. 仮想ホスト上の DocumentRoot の場所をデフォルトの /var/www/html から他のパスに変更した場合は、必ずこのパスも作成してください。 。

mkdir -p /var/www/rheltest.lan

: ServerName ホストが有効な DNS レコードであるか、Web サイトにアクセスする予定のローカル マシンのホスト ファイルに追加されていることも確認してください。

5. 次に、a2ensitea2dissite の bash スクリプトを実行可能システム パス上に作成します。この場合は /usr/local です。 /bin/ – でも
` PATH システム変数が出力する任意の実行可能パスを使用できます。

a2ensite スクリプトを作成する

選択したエディタで次のファイルを作成します。

nano /usr/local/bin/a2ensite

これに次のスクリプトを追加します。

#!/bin/bash
if test -d /etc/httpd/sites-available && test -d /etc/httpd/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled
fi

avail=/etc/httpd/sites-available/$1.conf
enabled=/etc/httpd/sites-enabled/
site=`ls /etc/httpd/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: a2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else

echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then

echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

a2dissite スクリプトを作成する

選択したエディタで次のファイルを作成します。

nano /usr/local/bin/a2dissite

次のスクリプト全体をファイルに追加します。

#!/bin/bash
avail=/etc/httpd/sites-enabled/$1.conf
enabled=/etc/httpd/sites-enabled
site=`ls /etc/httpd/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: a2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Apache: sudo systemctl restart httpd"
exit 0
fi
fi

6. 両方のスクリプト ファイルを作成したら、それらが実行可能であることを確認し、vhost 名を追加して仮想ホストを有効 または無効 にするために使用を開始します。コマンドパラメータとして。

chmod +x /usr/local/bin/a2*
a2ensite vhost_name
a2disite vhost_name

7. テストするには、前に作成した仮想ホストを有効にし、Apache サービスを再起動し、ブラウザを新しい仮想ホスト (この場合は http://rheltest.lan) に移動します。

a2ensite rheltest.lan
systemctl restart httpd

それでおしまい! a2eniste および a2dissite bash スクリプトをシステム コマンドとして使用して、RHEL/CentOS 7.0 で Apache Vhosts ファイルを管理できるようになりました。