Apache HTTPサーバー(Apache)は、最も人気のある無料のオープンソースクロスプラットフォームWebサーバーソフトウェアの1つであり、ApacheLicense2.0の条件の下でリリースされています。
Apacheは、頭字語のAである、LAMPセットアップの一部として人気があります。 Apacheサーバーの機能は、利用可能な多くのモジュールで拡張できます。
前提条件:
- 最新のCentos8サーバー
- サーバー(またはsudoアクセス権を持つユーザー)へのrootアクセス
- ポート80および443へのトラフィックを許可するように設定されたファイアウォール
Apacheのインストール
パッケージが最新であることを確認します:
sudo dnf -y update
Apacheは、デフォルトのCentOS8ソフトウェアリポジトリでhttpd
として利用できます。 。次のコマンドを使用して、それに関する情報を確認できます:
sudo dnf info httpd
これに似たものが表示されるはずです:
$ sudo dnf info httpd
CentOS Linux 8 - AppStream 20 MB/s | 8.8 MB 00:00
CentOS Linux 8 - BaseOS 24 MB/s | 5.6 MB 00:00
Last metadata expiration check: 0:00:01 ago on Sat 28 Aug 2021 01:06:59 PM UTC.
Available Packages
Name : httpd
Version : 2.4.37
Release : 39.module_el8.4.0+778+c970deab
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.37-39.module_el8.4.0+778+c970deab.src.rpm
Repository : appstream
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
次のコマンドでインストールします:
sudo dnf install -y httpd
firewalldでhttpとhttpsを有効にする
ファイアウォールを設定して実行している場合は、次のコマンドを使用してhttpポートとhttpsポートを有効にする必要があります。
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
次に、ファイアウォールをリロードして、これらの新しいルールを有効にします。
sudo firewall-cmd --reload
httpdサービスの開始と有効化
デフォルトでは、サービスは開始されません。次のコマンドで確認します:
sudo systemctl status httpd
出力:
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd.service(8)
次のコマンドでサービスを開始します:
sudo systemctl start httpd
サービスの実行中にアクティブなステータスが表示されます
サービスが正常に機能していることを確認してください:
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2021-08-28 13:32:17 UTC; 17s ago
Docs: man:httpd.service(8)
Main PID: 65827 (httpd)
Status: "Running, listening on: port 80"
Tasks: 213 (limit: 23800)
Memory: 28.9M
CGroup: /system.slice/httpd.service
├─65827 /usr/sbin/httpd -DFOREGROUND
├─65828 /usr/sbin/httpd -DFOREGROUND
├─65829 /usr/sbin/httpd -DFOREGROUND
├─65830 /usr/sbin/httpd -DFOREGROUND
└─65831 /usr/sbin/httpd -DFOREGROUND
Aug 28 13:32:17 test-app-server systemd[1]: Starting The Apache HTTP Server...
Aug 28 13:32:17 test-app-server httpd[65827]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::8fc:23ff:fe51:cc>
Aug 28 13:32:17 test-app-server systemd[1]: Started The Apache HTTP Server.
Aug 28 13:32:17 test-app-server httpd[65827]: Server configured, listening on: port 80
上記は、apacheが現在正常に機能していることを確認します。
サービスにアクセスできることを確認するには、次のURLにアクセスして、httpdページを取得できるかどうかを確認してください。
http://server_ip
サーバーが起動していることがわからない場合は、端末で次のコマンドを使用してください。
curl -4 icanhazip.com
そのページにアクセスすると、すべてが正常に機能している場合は、以下のスクリーンショットのようなApacheのデフォルトページが表示されます。
起動時にサービスが常に開始されるようにするには、次のsystemctlコマンドを使用します。
sudo systemctl enable httpd
仮想ホストの設定
Apacheを使用すると、Apacheが実行されている同じサーバー上で複数のサイトをホストすることができます。これは、サーバーがホストしているサイトをそれぞれ表す複数のドメインを使用して常に実現できます。
Apache仮想ホストはNginxサーバーブロックに似ています。各仮想ホストには、単一のホストの構成の詳細があります。必要な数の仮想ホストを持つことができます。
この例では、ドメインsite1.citizix.com
を使用します 仮想ホスト用ですが、選択したドメインを自由に使用できます。使用するドメインのDNSは、サーバーのIPアドレスを指すようにすでに構成されている必要があることに注意してください。
次のように確認してください:
dig -t A site1.citizix.com
ディレクトリとサンプルコンテンツの作成
apacheのデフォルトページは、/var/www/html
のコンテンツを提供するデフォルトの仮想ホストとして構成されています。 。 /var/www
にサイトのディレクトリを作成することをお勧めします そこからサービスを提供するためのベストプラクティス以来、ディレクトリ。
次のコマンドを使用して、サイトのディレクトリを作成しましょう。
sudo mkdir /var/www/site1.citizix.com
簡単なindex.html
を作成しましょう 当サイトから提供するページ。次のコマンドを使用しない場合、これを機能させるにはvimをインストールする必要があります:
sudo dnf install -y vim
ファイルを編集します:
sudo vim /var/www/site1.citizix.com/index.html
ファイルにコンテンツを追加します:
<html>
<head>
<title>Hello from Citizix Site1!</title>
</head>
<body>
<h1>Hey!</h1>
<p>This is citizix site1. Welcome here.</p>
</body>
</html>
最後に、現在のユーザーがサイトディレクトリを所有していることを確認しましょう:
sudo chown -R $USER:$USER /var/www/site1.citizix.com
仮想ホストの作成
Apache仮想ホストファイルは、各サイトの構成を指定し、ApacheWebサーバーにさまざまなドメイン要求に応答する方法を指示します。
Apache構成は、ディレクトリ/etc/httpd/conf.d/
に保存されます。 。私たちのサイトの構成を作成しましょう:
sudo vim /etc/httpd/conf.d/site1.citizix.com.conf
次のコンテンツを追加します:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
DocumentRoot /var/www/site1.citizix.com
ErrorLog /var/log/httpd/site1.citizix.com.error.log
CustomLog /var/log/httpd/site1.citizix.com.requests.log combined
</VirtualHost>
これにより、Apacheに次のように通知されます。
ServerName
およびServerAlias–提供するホストの名前-
DocumentRoot
–公的にアクセス可能なWebドキュメントを保持するルートを直接見つける場所 -
ErrorLog
–このサイトのエラーログを保存する場所 -
CustomLog
–この特定のサイトのリクエストログを保存する場所
終了したらファイルを保存して閉じます
仮想ホストのテスト
構成が整ったので、すべてが期待どおりに機能していることをテストする必要があります。
最初にapacheを再起動して、構成を再読み込みします:
sudo systemctl restart httpd
/var/log/httpd/
の内容を一覧表示します Apacheがログファイルを作成したかどうかを確認するディレクトリ:
すべて問題がなければ、次のような出力が表示されます:
# ls /var/log/httpd/
access_log error_log site1.citizix.com.error.log site1.citizix.com.requests.log
すべてが順調であれば、Apacheがドメイン名を提供します。 http://site1.citizix.com
に移動すると、これをテストできます。 、次のようなものが表示されるはずです:
上のスクリーンショットは、仮想ホストが正常に構成され、コンテンツを提供していることを確認しています。
他の複数のサイトをホストする必要がある場合は、必要なサイトに対して上記の手順を繰り返します。
結論
Centos8サーバーの上記の手順でApacheWebサーバーをインストールしてセットアップすることができました。