Apacheウェブサーバーは、オープンソースで人気のあるHTTPウェブサーバーであり、ホスティング業界で広範な市場シェアを維持しています。これには、モジュールの拡張、マルチプロトコルサポート、簡略化された設定、およびマルチ言語サポートなどの多くの機能が搭載されています。
関連記事: CentOS 8にNginxをインストールする方法
このガイドでは、CentOS 8およびRHEL 8でのApacheウェブサーバーのインストールを、仮想ホスト環境で説明します。このチュートリアルの執筆時点では、最新バージョンのApacheはApache 2.2.43です。
Apacheウェブサーバーのインストール
まず、次のdnfコマンドを使用してCentOS 8またはRHEL 8システムのパッケージリストを更新してください。
$ sudo dnf update
更新が完了したら、次のコマンドを実行してApacheウェブサーバーをインストールしてください。
$ sudo dnf install httpd
インストールが完了したら、rpmコマンドを実行してApacheのバージョンを確認できます。
$ rpm -qi httpd

このコマンドは、パッケージのバージョン、リリース日、ビルド、およびアーキテクチャなどの情報を表示します。
Apache HTTPウェブサービスを開始するには、systemctlコマンドを実行してください。
$ sudo systemctl start httpd
サービスが実行されているかどうかを確認するには、実行してください。
$ sudo systemctl status httpd

出力から、緑色の「active」ステータスはApacheウェブサーバーが起動していることを示しています。
ウェブサーバーが実行されているかどうかを疑う余地がある場合は、サーバーのIPアドレスまたはドメイン名をブラウズして、Apacheからテストページを要求してください。
http://server-ip
サーバーのIPを取得するには、ifconfigコマンドを実行してください。サーバーがクラウド上にホストされている場合は、curlコマンドを実行してパブリックIPを取得できます。
$ curl ifconfig.me OR $ curl -4 icanhazip.com

サーバーのIPアドレスをブラウズすると、次のウェブページが表示されます。

これは、ウェブサーバーが実行されていることを確認する方法です。
Apacheウェブサーバーの管理
Apacheをインストールして実行している場合、systemctl検査ツールを使用してApacheを管理できます。
たとえば、Apacheを停止するには、次のコマンドを実行してください:
$ sudo systemctl stop httpd
サービスを再起動するには、次のコマンドを実行してください:
$ sudo systemctl start httpd
サービスを再起動すると、通常サービスが中断します。中断せずに接続を再読み込みするのがより良い選択肢です。
$ sudo systemctl restart httpd
Apacheウェブサーバーを起動または再起動時に自動的に開始するには、以下のコマンドを実行します。これにより、Apacheが自動的に開始され、手動での介入は不要になります。
$ sudo systemctl reload httpd
ブート時にサービスを自動的に開始しないように選択する場合は、以下を実行します:
$ sudo systemctl enable httpd
Apache仮想ホストの設定
$ sudo systemctl disable httpd
デフォルトでは、Apacheウェブサーバーは1つのウェブサイトのみを提供またはホストするように構成されています。1つのウェブサイトのみをホストする場合は、この手順は不要です。ただし、サーバー上で複数のドメインをホストする予定の場合は、Apache仮想ホストを構成する必要があります。
デフォルトの仮想ホストは、/var/www/html
ディレクトリにあります。これは単一のサイトにのみ適用されます。ドメイン用に別の仮想ホストを作成するには、/var/www
ディレクトリ内に別のディレクトリ構造を作成します。
A virtual host is a separate file that contains configurations that allow you to set up a separate domain from the default one. For this guide, we will set up a virtual host for the domain crazytechgeek.info.
さらに、ログファイルを保存するディレクトリも作成できます。
$ sudo mkdir -p /var/www/crazytechgeek.info/html
次に、環境変数$USER
を使用してファイルのアクセス許可を編集します。
$ sudo mkdir -p /var/www/crazytechgeek.info/log
また、Webルートディレクトリの権限も調整します。
$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
次に、index.html
ファイルのサンプルを作成します。
$ sudo chmod -R 755 /var/www
キーボードで文字'i'
を押し、表示されるウェブブラウザでテストするときに表示されるサンプルコンテンツを貼り付けます。
$ sudo vim /var/www/crazytechgeek.info/html/index.html
設定ファイルを保存して終了します。
<html> <head> <title>Welcome to crazytechgeek.info!</title> </head> <body> <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1> </body> </html>
設定ファイルを保存して終了してください。
サンプルのインデックスファイルとサイトディレクトリが作成されたら、仮想ホストファイルを作成して進めることができます。 仮想ホストファイルには、ドメインのサイト構成が含まれ、Apacheにクライアントのリクエストへの応答方法を指示します。
仮想ホストファイルには、ドメインのサイト構成が含まれ、Apacheにクライアントのリクエストへの応答方法を指示します。 ただし、進む前に、sites-available
およびsites-enabled
ディレクトリを2つ作成する必要があります。
仮想ホストファイルはsites-available
ディレクトリに保存され、sites-enabled
ディレクトリには仮想ホストへのシンボリックリンクが含まれます。
以下に示すように、両方のディレクトリを作成してください。
$ sudo mkdir /etc/httpd/sites-available $ sudo mkdir /etc/httpd/sites-enabled
次に、Apacheウェブサーバーのメイン設定ファイルを変更し、仮想ホストをsites-enabledディレクトリ内の場所をApacheに指示してください。
$ sudo vim /etc/httpd/conf/httpd.conf
設定ファイルの最後に示されている行を追加してください。
IncludeOptional sites-enabled/*.conf
保存して終了してください。
以下に示すように、仮想ホストファイルを作成してください。
$ sudo vim /etc/httpd/sites-available/crazytechgeek.info
以下の内容を貼り付け、crazytechgeek.info
をご自身のドメイン名に置き換えてください。
<VirtualHost *:80> ServerName www.crazytechgeek.info ServerAlias crazytechgeek.info DocumentRoot /var/www/crazytechgeek.info/html ErrorLog /var/www/crazytechgeek.info/log/error.log CustomLog /var/www/crazytechgeek.info/log/requests.log combined </VirtualHost>
保存して終了してください。
今、sites-enabled
ディレクトリにシンボリックリンクを作成することで、仮想ホストファイルを有効にしてください。
$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf
仮想ホストのためのSELinux権限の調整
CentOS 8およびRHEL 8には、Linuxシステムのセキュリティを強化するセキュリティモジュールであるSELinuxが搭載されています。前のステップでカスタムログディレクトリを構成したため、Apache Webサーバーにディレクトリへの書き込みを指示するためにいくつかのSELinuxポリシーを更新する必要があります。
SELinux Apacheポリシーの調整には2つのアプローチがあります: ポリシーの普遍的な調整とディレクトリ上のポリシーの調整。後者が好ましいです。
ディレクトリ上のSELinuxポリシーの調整
ログディレクトリのSELinux権限を編集すると、Apache Webサーバーのポリシーを完全に制御できます。この方法はかなり長く、仮想ホスト構成ファイルで指定された追加ディレクトリのコンテキストタイプを手動で構成する必要があります。
始める前に、まずSELinuxによってログディレクトリに割り当てられたコンテキストタイプを確認してください:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/
出力は以下のようなものであるべきです。

出力から、設定されたコンテキストはhttpd_sys_content_tです。これは、Webサーバーがログディレクトリ内のファイルを読み取ることしかできないことを示しています。Apacheがディレクトリにログエントリを生成して追加できるように、このコンテキストをhttpd_log_tに変更する必要があります。
したがって、次のコマンドを実行してください:
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
もしも以下のエラーが発生した場合、「semanage: command not found」。
それは、semanageコマンドを提供するパッケージがインストールされていないことを意味します。このエラーを修正するには、まずそれらのパッケージをインストールする必要があります。しかし、まずは実行している
$ sudo dnf whatprovides /usr/sbin/semanage
semanageコマンドを提供するパッケージを確認するために以下のコマンドを実行してください:policycoreutils-python-utils。
次に、DNFパッケージマネージャーを使用して以下のようにしてパッケージをインストールしてください。
$ sudo dnf install policycoreutils-python-utils
これでコンテキストを変更するコマンドが動作するはずです。
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
変更を保存し、永続化するために、次のようにrestoreconコマンドを実行してください:
$ sudo restorecon -R -v /var/www/crazytechgeek.info/log
再度以下のコマンドを実行して変更を確認できます:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

出力でhttpd_log_t
というコンテキストタイプが変更されていることを確認してください。
変更が適用されるようにApacheを再起動してください。
$ sudo systemctl restart httpd
次に示すようにログディレクトリの内容をリストアップして、Apacheがログファイルを保存しているかどうかを確認してください:
$ ls -l /var/www/crazytechgeek.info/log/
表示されるはずのログファイルは、エラーログとリクエストログファイルの2つです。

Apache仮想ホストのテスト
最後に、Apacheウェブサーバーが仮想ホストファイルを提供していることを確認してください。これを行うには、ブラウザを開き、サーバーのIPアドレスまたはドメイン名に移動してください。
http://domain-name

完璧です!これはすべてがうまくいったことを示しており、私たちの仮想ホストが期待どおりに提供されています。
結論
このガイドでは、ApacheウェブサーバーをCentOS 8およびRHEL 8にインストールし、さらにドメインのコンテンツを提供するための仮想ホストファイルの設定方法を学びました。必要に応じて、追加のドメインに対応するために複数の仮想ホストファイルを設定してください。
完全なホスティングスタックをセットアップしたい場合は、CentOS 8にLAMPスタックをインストールすることをお勧めします。
Source:
https://www.tecmint.com/install-apache-with-virtual-host-on-centos-8/