CentOS7にApache Webサーバーをインストールする方法

はじめに

Apache HTTPサーバーは、世界で最も広く使用されているwebサーバーです。 動的にロード可能なモジュール、堅牢なメディアサポート、その他の一般的なソフトウェアとの広範な統合など、多くの強力な機能を提供します。このガイドでは、CentOS7サーバーに仮想ホストを含むApache webサーバーをインストールします。前提条件このガイドを完了するには、次のものが必要です。

前提条件

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

CentOS7の初期サーバーセットアップガイドに従って設定された、サーバー上で構成されたsudo権限を持つ非rootユーザー。

          • 新しいCentOS7サーバーガイドの追加推奨手順に従って構成された基本的なファイアウォール。つまり、yumパッケージマネージャーでインストールできます。

            前提条件で設定されている非root sudoユーザーとして、ローカルApachehttpdパッケージインデックスを更新して、最新のアップストリームの変更を反映します。

            • sudo yum update httpd

            パッケージが更新されたら、Apacheパッケージをインストールします。

            • sudo yum install httpd

            インストールを確認した後、

            • sudo yum install httpd

            yumは、apacheと必要なすべての依存関係をインストールします。

            前提条件セクションに記載されている新しいCentOS7サーバーガイドの追加の推奨手順を完了した場合は、サーバーにfirewalldfirewalldhttpサービスを有効にすることでこれを行うことができます:

            • sudo firewall-cmd --permanent --add-service=http

            HTTPS経由でコンテンツを提供するようにApacheを設定する場合は、ポートを開くこともできます443httpsservice:

            • sudo firewall-cmd --permanent --add-service=https

            次に、ファイアウォールをリロードしますこれらの新しいルールを有効にするには:

            • sudo firewall-cmd --reload

            ファイアウォールのリロード後、サービスを開始してwebサーバーを確認する準備が整いました。

            ステップ2—Webサーバーの確認

            インストールが完了すると、ApacheはCentOSで自動的に起動しません。 Apacheプロセスを手動で開始する必要があります。

            • sudo systemctl start httpd

            次のコマンドでサービスが実行されていることを確認します。

            • sudo systemctl status httpd

            サービスが実行されているときにactiveステータスが表示されます。

            デフォルトのApacheランディングページにアクセスして、ソフトウェアがIPアドレスを介して正常に実行されていることを確認できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの方法で取得できます。

            サーバーのコマンドプロンプトで次のように入力します。

            • hostname -I

            このコマンドは、ホストのすべてのネットワークアドレスを表示するので、スペースで区切ったいくつかのIPアドレスが返されます。 あなたは、彼らが動作するかどうかを確認するために、webブラウザでそれぞれを試すことができます。または、curlicanhazip.comからIPを要求すると、インターネット上の別の場所から見たパブリックIpv4ア:サーバーのIPアドレスを取得したら、ブラウザのアドレスバーに入力します。

            http://your_server_ip

            デフォルトのCentOS7Apache webページが表示されます。

            CentOS7のデフォルトのApacheページ

            このページはapacheが正常に動作していることを示しています。 また、重要なApacheファイルとディレクトリの場所に関する基本的な情報も含まれています。 サービスがインストールされて実行されたので、別のsystemctlコマンドを使用してサービスを管理できるようになりました。ステップ3-Apacheプロセスの管理

            webサーバーを起動して実行したので、いくつかの基本的な管理コマンドを見てみましょう。

            webサーバーを停止するには、次のように入力します。

            • sudo systemctl stop httpd

            webサーバーが停止したときにwebサーバーを起動するには、次のように入力します。

            • sudo systemctl start httpd

            停止してから再びサービスを開始するには、次のように入力します。

            • sudo systemctl restart httpd

            単に設定を変更する場合は、次のように入力します。apacheは、多くの場合、接続を切断せずにリロードできます。 これを行うには、次のコマンドを使用します:

            • sudo systemctl reload httpd

            デフォルトでは、Apacheはサーバーの起動時に自動的に起動するように設定されています。 これが必要でない場合は、次のように入力してこの動作を無効にします。

            • sudo systemctl disable httpd

            起動時にサービスを再起動できるようにするには、次のように入力します。

            • sudo systemctl enable httpd

            サーバの再起動時にApacheが自動的に起動するようになりました。

            Apacheのデフォルト設定では、サーバーが単一のwebサイトをホストできるようになります。 サーバー上で複数のドメインをホストする予定の場合は、Apacheウェブサーバー上でバーチャルホストを設定する必要があります。

            ステップ4—仮想ホストの設定(推奨)

            Apache webサーバーを使用する場合、仮想ホスト(Nginxのサーバーブロックに似ています)を使用して設定の詳細をカ このステップでは、example.comというドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、DigitalOcean DNSの概要を参照してください。

            CentOS7のApacheには、/var/www/html/var/www/html/var/wwwexample.com/var/www/htmlを残して、クライアントリクエストが他のサイトと一致しない場合に提供されるデフォルトディレクトリとして配置します。

            htmlexample.com-pフラグを使用して、必要な親ディレクトリを作成します。

            • sudo mkdir -p /var/www/example.com/html

            サイトのログファイルを格納するための追加のディレクトリを作成します。

            • sudo mkdir -p /var/www/example.com/html

            • sudo mkdir -p /var/www/example.com/log

            次に、html$USER環境変数で割り当てます。

            • sudo chown -R $USER:$USER /var/www/example.com/html

            webルートにデフォルトのパーミッションが設定されていることを確認してください:

            • sudo chmod -R 755 /var/www

            Next, create a sample index.html page using vi or your favorite editor:

            • sudo vi /var/www/example.com/html/index.html

            Press i to switch to INSERT mode and add the following sample HTML to the file:

            /var/www/example.com/html/index.html
            <html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body></html>

            Save and close the file by pressing ESC, typing :wq, and pressing ENTER.

            サイトディレクトリとサンプルインデックスファイルを配置すると、仮想ホストファイルを作成する準備がほぼ整いました。 仮想ホストファイルは、個別のサイトの構成を指定し、さまざまなドメイン要求に応答する方法をApache webサーバーに指示します。

            仮想ホストを作成する前に、それらを格納するディレクトリを作成する必要があります。sites-availablesites-enabledディレクトリを作成して、バーチャルホストが訪問者にサービスを提供する準備ができていることをApacheに伝えます。 sites-enabledディレクトリは、公開したい仮想ホストへのシンボリックリンクを保持します。 次のコマンドで両方のディレクトリを作成します。

            • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

            次に、sites-enabledディレクトリでバーチャルホストを探すようにApacheに指示します。 これを行うには、Apacheのメイン設定ファイルを編集し、追加の設定ファイルのオプションのディレクトリを宣言する行を追加します。

            • sudo vi /etc/httpd/conf/httpd.conf

            :p>

            IncludeOptional sites-enabled/*.conf

            その行の追加が完了したら、ファイルを保存して閉じます。 これで、仮想ホストディレクトリが用意されたので、仮想ホストファイルを作成します。

            sites-availableディレクトリに新しいファイルを作成することから始めます。

            • sudo vi /etc/httpd/sites-available/example.com.conf

            次の設定ブロックを追加し、example.comドメインをドメイン名に変更します。

            /etc/httpd/sites-available/example.com。conf
            <VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined</VirtualHost>

            これは、公開されているwebドキュメントを保持するルートを直接見つける場所をApacheに指示します。 また、この特定のサイトのエラーと要求ログを格納する場所をApacheに指示します。終了したらファイルを保存して閉じます。

            終了したらファイルを保存して閉じます。

            これで仮想ホストファイルを作成したので、Apacheが訪問者にそれらを提供することを知っているように、それらを有効にします。 これを行うには、sites-enabledディレクトリに各仮想ホストのシンボリックリンクを作成します:p>

            • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

            仮想ホストが構成され、コンテンツを提供する準備が整いました。 Apacheサービスを再起動する前に、SELinuxがバーチャルホストに適切なポリシーを設定していることを確認しましょう。ステップ5-仮想ホストのSELinux権限の調整(推奨)

            SELinuxはデフォルトのApache設定で動作するように設定されています。 バーチャルホストの設定ファイルにカスタムログディレクトリを設定しているため、Apacheサービスを起動しようとするとエラーが表示されます。 これを解決するには、Apacheが必要なファイルに書き込むことを許可するようにSELinuxポリシーを更新する必要があります。 SELinuxはCentOS7環境に高いセキュリティをもたらしますので、カーネルモジュールを完全に無効にすることはお勧めしません。 SELinuxではセキュリティレベルをカスタマイズできるため、環境のニーズに基づいてポリシーを設定するにはさまざまな方法があります。 このステップでは、Apacheのポリシーを調整する2つの方法を扱います:普遍的な方法と特定のディレクトリでの方法です。 ディレクトリのポリシーを調整する方が安全であるため、推奨される方法です。

            Apacheポリシーを普遍的に調整する

            Apacheポリシーを普遍的に設定すると、httpd_unifiedブール値を使用して、すべてのApacheプロセスを同じように扱うようにSELinux この方法はより便利ですが、ファイルまたはディレクトリポリシーに焦点を当てた方法と同じレベルの制御を与えることはありません。

            次のコマンドを実行して、汎用Apacheポリシーを設定します。

            • sudo setsebool -P httpd_unified 1

            setseboolコマンドはSELinuxのブール値を変更します。 -Phttpd_unifiedは、すべてのApacheプロセスを同じタイプとして扱うようにSELinuxに指示するブール値であるため、1の値で

            ディレクトリのApacheポリシーを調整する

            /var/www/example.com/logディレクトリのSELinux権限を個別に設定すると、Apacheポリシーをより詳細に制御できますが、より多くのメンテナンスが必要になることもあります。 このオプションは普遍的にポリシーを設定するものではないため、仮想ホスト構成で指定された新しいログディレクトリのコンテキストタイプを手動で設定する必要があります。まず、SELinuxが/var/www/example.com/logディレクトリを与えたコンテキストタイプを確認します。

            • sudo ls -dZ /var/www/example.com/log/

            このコマンドは、ディレクトリのSELinuxコンテキストを一覧表示して出力します。 次のような出力が表示されます:現在のコンテキストはhttpd_sys_content_tであり、Apacheプロセスはこのディレクトリに作成されたファイルのみを読み取ることができます。 このチュートリアルでは、/var/www/example.com/loghttpd_log_tに変更します。 このタイプは、Apacheが生成し、webアプリケーションのログファイルに追加することができます。

            • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

            次に、restoreconコマンドを使用して、こ:

            • sudo restorecon -R -v /var/www/example.com/log

            -R-vフラグは、コマンドが行ったコンテキストの変更を出力します。 変更を確認する次の出力が表示されます。

            Output
            restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

            コンテキストをもう一度一覧表示して変更を確認できます。

            • sudo ls -dZ /var/www/example.com/log/

            出力は更新されたコンテキストタイプを反映しています:これで、/var/www/example.com/loghttpd_log_tタイプを使用しているので、仮想ホスト構成をテストする準備が整いました。

            ステップ6—仮想ホストのテスト(推奨)

            SELinuxコンテキストがいずれかの方法で更新されると、Apacheは/var/www/example.com/logディレクトリに書き込むことができます。 これで、Apacheサービスを正常に再起動できます。

            • sudo systemctl restart httpd

            /var/www/example.com/logディレクトリの内容を一覧表示して、Apacheがログファイルを作成したかどうかを確認:

            • ls -lZ /var/www/example.com/log

            Apacheがerror.logrequests.log仮想ホスト設定で指定されたファイルを作成できたことがわかります。

            Output
            -rw-r--r--. 1 root root 0 Feb 26 22:54 error.log-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

            仮想ホストをセットアップしてから、次のようにします。

            Output
            -rw-r--r--. 1 root root 0 Feb 26 22:54 error.log-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

            これで、仮想ホストがセットアップされ、

            selinuxの権限が更新され、apacheは今、あなたのドメイン名を提供します。 これをテストするには、http://example.comに移動します。

            成功! そのexample.com 仮想ホストが動作しています!

            これにより、仮想ホストが正常に構成され、コンテンツが提供されていることが確認されます。 手順4と5を繰り返して、追加のドメインに対するSELinux権限を持つ新しい仮想ホストを作成します。

            結論

            このチュートリアルでは、Apache webサーバーをインストールして管理しました。 Webサーバーがインストールされたので、提供できるコンテンツの種類と、より豊かな体験を作成するために使用できるテクノロジについて、多くのオプシ

            より完全なアプリケーションスタックを構築したい場合は、CentOS7でLAMPスタックを設定する方法に関するこの記事を見ることができます。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です