前書き

Ubuntuでは、デフォルトで、Apache2 Webサーバーはドキュメントを `+ / var / www / html`に保存します。これは通常、オペレーティングシステムの他の部分と一緒にルートファイルシステムにあります。 ただし、ドキュメントルートを別の場所(別のマウントされたファイルシステムなど)に移動すると便利な場合があります。 たとえば、同じApacheインスタンスから複数のWebサイトを提供する場合、それぞれのドキュメントルートを独自のボリュームに配置すると、特定のサイトまたはクライアントのニーズに応じて拡張できます。

このガイドでは、Apacheドキュメントルートを新しい場所に移動する方法を示します。

前提条件

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

  • * `+ sudo +`特権を持つ非rootユーザーを持つUbuntu 16.04サーバー*。 これらの権限を持つユーザーを設定する方法については、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [Ubuntu 16.04での初期サーバー設定]をご覧ください。 ]ガイド。

  • * Apache2 Webサーバー*:まだ設定していない場合は、詳細な記事のApacheセクション、https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache -mysql-php-lamp-stack-on-ubuntu-16-04 [Ubuntu 16.04にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法]が参考になります。

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

この例では、 `+ / mnt / volume-nyc1-01 +`ディレクトリを使用します。 DigitalOceanでBlock Storageを使用している場合、https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-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 +`は詳細な出力を提供するため、進行状況を追跡できます。

sudo rsync -av /var/www/

これで、構成を更新する準備ができました。

ステップ2-構成ファイルの更新

Apache2は、グローバルおよびサイト固有の構成ファイルの両方を使用します。 構成ファイルの階層に関する背景については、https://www.digitalocean.com/community/tutorials/how-to-configure-the-apache-web-server-on-an-ubuntu-or-debianをご覧ください-vps#the-apache-file-hierarchy-in-ubuntu-and-debian [UbuntuまたはDebian VPSでApache Webサーバーを設定する方法]。

既存のインストールを使用している場合は、以前に見つけた仮想ホストファイルを `+ 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 webmas[email protected]
      DocumentRoot
       <Directory />
               Options FollowSymLinks
               AllowOverride None
      </Directory>
     <Directory >
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Require all granted
       </Directory>

これらの変更を保存した後、SSL構成に注意を向けます。 新規インストールでは、SSLはまだ設定されていませんが、変更を加える必要があることを覚えていない場合、後でトラブルシューティングを避けるために、おそらく `+ ssl-default.conf +`を更新する必要があります。

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

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

<IfModule mod_ssl.c>
       <VirtualHost _default_:443>
               ServerAdmin [email protected]
               DocumentRoot
. . .

ステップ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 +`が得られる限り、Webサーバーを再起動します。 それ以外の場合は、報告された問題を追跡して修正します。

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

sudo systemctl reload apache2

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

結論

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

忙しいまたは成長しているWebサイトを管理している場合、https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing-の学習に興味があるかもしれません。 on-a-web-server [Webサーバーの負荷テスト方法]を使用して、本番環境で発生する前にパフォーマンスのボトルネックを特定します。 また、https://www.digitalocean.com/community/tutorials/5-ways-to-improve-your-production-web-application-server-setup [5つの方法実稼働Webアプリケーションサーバーのセットアップを改善する]。