序章

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

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

前提条件

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

  • root以外のユーザーがいるDebian8サーバー sudo 特権。 これらの権限を持つユーザーを設定する方法の詳細については、 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 次のコマンドを使用して、フォーカスをアクティブなサイトに制限するディレクトリ:

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

The -R フラグは grep DocumentRootとファイル名の両方を出力に出力します。

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

Output
sites-enabled/000-default.conf DocumentRoot /var/www/html

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

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

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

  1. sudo apt-get install rsync

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

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

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

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

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

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

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

既存のインストールで作業している場合は、以前に見つけた仮想ホストファイルを grep 指図。 この例では、デフォルトでApacheに付属している2つの仮想ホストファイルを見ていきます。 000-default.confdefault-ssl.conf.

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

  1. 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番目のブロックは新しいWebルートのオプションを構成します /mnt/volume-nyc1-01/html/

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

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

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

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

ファイルを編集します。

  1. 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>
 ...

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

  1. sudo apachectl configtest

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

Output
AH00558: 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を再起動します。

  1. sudo systemctl reload apache2

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

結論

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

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