Ubuntu16.04でApacheWebルートを新しい場所に移動する方法
序章
Ubuntuでは、デフォルトで、Apache2Webサーバーはドキュメントを/var/www/html
に保存します。これは通常、残りのオペレーティングシステムとともにルートファイルシステムにあります。 ただし、ドキュメントルートを別のマウントされたファイルシステムなどの別の場所に移動すると便利な場合があります。 たとえば、同じApacheインスタンスから複数のWebサイトにサービスを提供する場合、それぞれのドキュメントルートを独自のボリュームに配置すると、特定のサイトまたはクライアントのニーズに応じて拡張できます。
このガイドでは、Apacheドキュメントルートを新しい場所に移動する方法を説明します。
前提条件
このガイドを完了するには、次のものが必要です。
-
sudo権限を持つ非rootユーザーのUbuntu16.04サーバー。 これらの権限を持つユーザーをセットアップする方法の詳細については、 Ubuntu16.04を使用したサーバーの初期セットアップガイドを参照してください。
-
Apache2 Webサーバー:まだセットアップしていない場合は、詳細記事のApacheセクション Linux、Apache、MySQL、PHP(LAMP)スタックをUbuntuにインストールする方法16.04 、あなたを導くことができます。
-
ドキュメントルートの新しい場所:新しいドキュメントルートの場所は、ニーズに基づいて完全に構成できます。 ドキュメントルートを別のストレージデバイスに移動する場合は、デバイスのマウントポイントの下の場所を選択する必要があります。
この例では、/mnt/volume-nyc1-01
ディレクトリを使用します。 DigitalOceanでブロックストレージを使用している場合は、このガイドで、このチュートリアルを続行する前にドライブをマウントする方法を説明します。
ステップ1—ファイルを新しい場所にコピーする
Apacheの新規インストールでは、ドキュメントルートは/var/www/html
にあります。 ただし、既存のサーバーを使用している場合は、対応するVirtualHostディレクティブに複数のドキュメントルートが含まれるなど、設定が大幅に異なる場合があります。
grep
を使用して、追加のドキュメントルートの場所を検索できます。 /etc/apache2/sites-enabled
ディレクトリを検索して、アクティブなサイトに焦点を絞ります。 -R
フラグは、grep
が出力にDocumentRootとファイル名の両方を出力することを保証します。
- grep -R "DocumentRoot" /etc/apache2/sites-enabled
結果は以下の出力のようになりますが、結果の名前と数は既存のインストールでは異なる可能性があります。
Outputsites-enabled/000-default.conf DocumentRoot /var/www/html
grep
からのフィードバックを使用して、移動するファイルを移動し、適切な構成ファイルを更新していることを確認します。
ドキュメントルートの場所を確認したので、rsync
を使用してファイルを新しい場所にコピーします。 -a
フラグを使用すると、アクセス許可とその他のディレクトリプロパティが保持され、-v
は詳細な出力を提供するため、進行状況を追跡できます。
注:ディレクトリに末尾のスラッシュがないことを確認してください。これは、タブ補完を使用する場合に追加される可能性があります。 末尾にスラッシュがある場合、rsync
は、ディレクトリの内容を、含まれているhtml
ディレクトリに転送するのではなく、マウントポイントにダンプします。
- sudo rsync -av /var/www/html /mnt/volume-nyc1-01
これで、構成を更新する準備が整いました。
ステップ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
で始まる行を見つけて、新しい場所で更新します。
注:元のパスが表示された他の場所を探し、それらも新しい場所に変更する必要があります。 デフォルトのインストールでは、変更する必要があるDocumentRootとDirectory
ブロックがあります。 既存のインストールでは、更新が必要なエイリアスやリライトなども見つかる場合があります。 grep
の出力に元のドキュメントルートのパスが表示されている場合は、調査する必要があります。
<VirtualHost *:80>
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>
これらの変更を保存した後、SSL構成に注意を向けます。 新規インストールでは、SSLはまだ構成されていませんが、変更を加える必要があることを思い出せない場合は、後でトラブルシューティングを回避するために、ssl-default.conf
を更新することをお勧めします。
- sudo nano /etc/apache2/sites-available/ssl-default.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01
. . .
注: SSLが有効になっていない場合、ssl-default.conf
ファイルは/etc/apache2/sites-available.
にのみ存在しますa2ensite
でSSLを有効にすると、シンボリックリンクはsites-available
から/etc/apache2/sites-enabled
のファイル。 その場合、ファイルはどちらのディレクトリからでも編集できます。
ステップ3—Apacheを再起動する
構成の変更が完了したら、configtest
を使用して構文が正しいことを確認できます。
- sudo apachectl configtest
新規インストールでは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つの方法のこの比較で、本番エクスペリエンスの改善についてさらに学ぶことができます。