ApacheWebルートをDebian8の新しい場所に移動する方法

提供:Dev Guides
移動先:案内検索

序章

Debian 8では、Apache2Webサーバーはデフォルトでそのドキュメントを/var/www/htmlに保存します。 このディレクトリは、残りのオペレーティングシステムとともにルートファイルシステムにあります。 ドキュメントルートを別のマウントされたファイルシステムなどの別の場所に移動することをお勧めします。 たとえば、同じApacheインスタンスから複数のWebサイトにサービスを提供する場合、各サイトのドキュメントルートを独自のボリュームに配置すると、特定のサイトまたはクライアントのニーズに応じて拡張できます。

このガイドでは、ファイルを移動してApacheの構成ファイルを変更することにより、Apacheドキュメントルートを新しい場所に移動します。

前提条件

このガイドを完了するには、次のものが必要です。

  • sudo権限を持つ非rootユーザーのDebian8サーバー。 これらの権限を持つユーザーを設定する方法の詳細については、 Debian8を使用した初期サーバー設定ガイドを参照してください。

  • Apache2 Webサーバー:まだセットアップしていない場合は、詳細な記事 Debian 8 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法のApacheセクションで次のことができます。あなたを導きます。

  • ドキュメントルートの新しい場所:新しいドキュメントルートの場所は、ニーズに基づいて完全に構成できます。 ドキュメントルートを別のストレージデバイスに移動する場合は、デバイスのマウントポイントの下の場所を選択する必要があります。

    このチュートリアルでは、サーバーに接続されているブロックストレージボリュームを指すディレクトリ/mnt/volume-nyc1-01を使用します。 ブロックストレージを使用してWebページを保持する場合は、続行する前に、チュートリアルDigitalOceanでブロックストレージを使用してドライブをマウントする方法を完了してください。

ステップ1—ファイルを新しい場所にコピーする

Apacheの新規インストールでは、ドキュメントルートは/var/www/htmlにあります。 ただし、既存のサーバーを使用している場合は、対応するVirtualHostディレクティブに複数のドキュメントルートが含まれるなど、設定が大幅に異なる場合があります。

grepを使用して、追加のドキュメントルートの場所を検索できます。 次のコマンドを使用して、/etc/apache2/sites-enabledディレクトリを検索し、アクティブなサイトにフォーカスを限定します。

grep -R "DocumentRoot" /etc/apache2/sites-enabled

-Rフラグは、grepが出力にDocumentRootとファイル名の両方を出力することを保証します。

結果は次のようになりますが、結果の名前と数は既存のインストールでは異なる可能性があります。

Outputsites-enabled/000-default.conf   DocumentRoot /var/www/html

grepからのフィードバックを使用して、移動するファイルを移動し、適切な構成ファイルを更新していることを確認します。

ドキュメントルートの場所を確認したので、rsyncを使用してファイルを新しい場所にコピーします。

まず、rsyncをインストールします

sudo apt-get install rsync

次に、次のコマンドを実行してファイルをコピーします。

sudo rsync -av /var/www/html /mnt/volume-nyc1-01

-aフラグを使用すると、アクセス許可とその他のディレクトリプロパティが保持され、-vは詳細な出力を提供するため、進行状況を追跡できます。 チュートリアルRsyncを使用してVPSでローカルディレクトリとリモートディレクトリを同期する方法でrsyncの使用について詳しく学んでください。

注:ディレクトリに末尾のスラッシュがないことを確認してください。これは、タブ補完を使用する場合に追加される可能性があります。 末尾にスラッシュがある場合、rsyncは、ディレクトリの内容を、含まれているhtmlディレクトリに転送するのではなく、マウントポイントにダンプします。


ファイルは新しい場所にありますが、Apacheはまだ古い場所を探しているので、それを修正しましょう。

ステップ2—構成ファイルを更新する

Apache2は、グローバル構成ファイルとサイト固有の構成ファイルの両方を利用します。 構成ファイルの階層の背景については、UbuntuまたはDebianVPSでApacheWebサーバーを構成する方法を参照してください。

既存のインストールで作業している場合は、grepコマンドを使用して以前に見つけた仮想ホストファイルを変更する必要があります。 この例では、Apacheにデフォルトで付属している2つの仮想ホストファイル000-default.confdefault-ssl.confを見ていきます。

000-default.confファイルを編集することから始めます。

sudo nano /etc/apache2/sites-enabled/000-default.conf

DocumentRootで始まる行を見つけて、新しい場所で更新します。

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
 ...
        ServerAdmin webmaster@localhost
        DocumentRoot /mnt/volume-nyc1-01/html

次に、元のパスを指すDirectoryブロックを探し、新しいパスを指すように更新します。

新規インストールでは、デフォルトサイトにDirectoryエントリはありません。 次のコードを構成ファイルに追加して、Apacheが新しい場所からファイルを提供できるようにします。

/etc/apache2/sites-enabled/000-default.conf

 ...
     ServerAdmin webmaster@localhost
     DocumentRoot /mnt/volume-nyc1-01/html

     <Directory />
         Options FollowSymLinks
         AllowOverride None
     </Directory>
     <Directory /mnt/volume-nyc1-01/html/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Require all granted
    </Directory>
 ...

最初のDirectoryブロックは、いくつかの制限的なデフォルトのアクセス許可を設定し、2番目のブロックは、/mnt/volume-nyc1-01/html/の新しいWebルートのオプションを構成します。

注:元のパスが表示された他の場所を探し、それらも新しい場所に変更する必要があります。 DocumentRootDirectoryの設定に加えて、更新が必要なエイリアスやリライトなども見つかる場合があります。 grepの出力に元のドキュメントルートのパスが表示されている場合は、新しい場所を反映するようにパスを更新する必要があります。


必要な変更を加えたら、ファイルを保存します。

次に、SSL構成に注目します。 新規インストールでは、SSLはまだ構成されていませんが、変更を加える必要があることを思い出せない場合は、後で問題を回避するためにssl-default.confファイルを更新することをお勧めします。

注: SSLが有効になっていない場合、ssl-default.confファイルは/etc/apache2/sites-available.にのみ存在しますsudo a2ensite ssl-defaultでSSLを有効にすると、シンボリックリンクはsites-availableから/etc/apache2/sites-enabledのファイル。 その場合、どちらのディレクトリからでもファイルを編集できます。


ファイルを編集します。

sudo nano /etc/apache2/sites-available/ssl-default.conf

次に、DocumentRootを変更し、Directoryルールが正しく構成されていることを確認して、以前に行ったのと同じ変更を行います。

/etc/apache2/sites-available/ssl-default.conf

 ...
<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
     ServerAdmin webmaster@localhost
     DocumentRoot /mnt/volume-nyc1-01

     <Directory />
         Options FollowSymLinks
         AllowOverride None
     </Directory>
     <Directory /mnt/volume-nyc1-01/html/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Require all granted
    </Directory>
 ...

構成の変更が完了したら、次のコマンドを使用して構文が正しいことを確認します。

sudo apachectl configtest

次のような出力が表示されます。

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, 
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

デフォルトのインストールでは、前のメッセージが表示されますが、無視しても問題ありません。 Syntax OKが表示されている限り、Webサーバーを再起動します。 それ以外の場合は、報告された問題を追跡して修正します。

次のコマンドを使用して、Apacheを再起動します。

sudo systemctl reload apache2

サーバーが再起動したら、影響を受けるサイトにアクセスして、期待どおりに機能していることを確認します。 すべてが順調に進んだら、データの元のコピーを削除することを忘れないでください。

結論

このチュートリアルでは、Apacheドキュメントルートを新しい場所に変更しました。 これは、単一のサーバーで複数のサイトを効果的にホストするなど、基本的なWebサーバーの管理に役立ちます。 また、ネットワークブロックストレージなどの代替ストレージデバイスを利用することもできます。これは、ニーズの変化に応じてWebサイトを拡張するための重要なステップです。

忙しいまたは成長しているWebサイトを管理している場合は、本番環境でパフォーマンスのボトルネックに遭遇する前に、Webサーバーの負荷テストを学習してパフォーマンスのボトルネックを特定することをお勧めします。 本番Webアプリケーションサーバーのセットアップを改善する5つの方法のこの比較で、本番エクスペリエンスの改善についてさらに学ぶことができます。