ApacheWebルートをDebian8の新しい場所に移動する方法
序章
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.conf
とdefault-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ルートのオプションを構成します。
注:元のパスが表示された他の場所を探し、それらも新しい場所に変更する必要があります。 DocumentRoot
とDirectory
の設定に加えて、更新が必要なエイリアスやリライトなども見つかる場合があります。 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つの方法のこの比較で、本番エクスペリエンスの改善についてさらに学ぶことができます。