Apache Webサーバーのインストールと設定方法

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web サイトをホストする方法を学びます。

私は長年にわたり独自のウェブサイトをホストしてきました。私は 20 年以上前に OS/2 から Linux に切り替えて以来、サーバー ソフトウェアとして Apache を使用しています。 Apache は信頼性が高く、人気があり、基本的なインストールと設定も簡単です。より複雑な設定(複数の Web サイトなど)でも、それほど難しくはありません。

Apache Web サーバーのインストールと構成は、root として実行する必要があります。 ファイアウォールの設定も root として実行する必要があります。 ブラウザを使用してインストール構成の結果を表示するには、非 root ユーザーとして実行する必要があります。 (私は仮想ホスト上でユーザー student を使用します。)

インストール

注: 私が使用した実験環境は、Fedora 27 がインストールされた仮想マシンであり、Apache バージョンは 2.4.29 です。 別のディストリビューションや別のバージョンの Fedora を使用している場合は、コマンドや設定ファイルの場所と内容が異なる場合があります。 ただし、変更する必要がある構成行は同じです。

Apache Web サーバーのインストールは非常に簡単です。 私の CentOS 6.x サーバーでは、単純な yum コマンドのみが必要でした。 必要な依存関係がすべてインストールされます (必要な場合)。 Fedora 仮想マシンで次の dnf コマンドを使用しました。 コマンド自体の名前を除けば、dnf と yum の構文は同じです。

dnf -y install httpd

この VM は、本を書くためのテストベッドとして使用している非常に基本的なデスクトップ環境です。 このシステムでも、6 つの依存関係をインストールするのに 1 分しかかかりませんでした。

すべての Apache 設定ファイルは、/etc/httpd/conf および /etc/httpd/conf.d にあります。ウェブサイトのデータはデフォルトでは /var/www にありますが、必要に応じて変更できます。

構成

Apache の主な設定ファイルは /etc/httpd/conf/httpd.conf です。 基本的なインストールでは変更する必要のない多くの構成が含まれています。 実際、このファイルにいくつかの変更を加えるだけで、シンプルな Web サイトを立ち上げて実行することができます。 ファイルはかなり大きいので、この投稿を大量の不要なもので煩雑にするのではなく、変更が必要な手順のみを示します。

まず、httpd.conf ファイルについてよく理解しておいてください。 Red Hat で気に入っている点の 1 つは、設定ファイルに非常によくコメントが付けられていることです。 httpd.conf ファイルも例外ではなく、適切にコメントされています。これらのコメントを使用して、ファイルの構成を理解できます。

最初に変更するのは、Listen 構成項目です。これは、Apache がページ要求をリッスンする IP アドレスとポートを定義します。 ここで、この Web サイトにローカルでアクセスできるようにする必要があるので、localhost アドレスを使用します。 完了すると、行は次のようになります。

Listen 127.0.0.1:80

この設定オプションを localhost の IP アドレスに設定すると、Apache はローカルホストからの接続のみをリッスンします。 Web サーバーがリモート ホストからの接続をリッスンするようにする場合は、ホストの外部 IP アドレスを使用できます。

DocumentRoot 構成項目は、Web サイトのページを構成する HTML ファイルの場所を指定します。 この構成項目は既に標準の場所を指しているため、変更する必要はありません。 行は次のようになります。

DocumentRoot "/var/www/html"

Apache インストール パッケージは /var/www ディレクトリを作成します。 ウェブサイトのファイルが保存される場所を変更する場合は、この構成項目を使用して変更します。 たとえば、サイトをより明確に識別するために、www ディレクトリに別の名前を使用する場合があります。 これは次のようになります:

DocumentRoot "/var/mywebsite/html"

これらは、単純な Web サイトを作成するために変更する必要がある唯一の Apache 構成項目です。 この小さな演習では、httpd.conf ファイル (Listen 構成項目) にのみいくつかの変更が加えられました。 シンプルな Web サーバーの場合、他の構成項目は必要ありません。

変更する必要があるもう 1 つの点は、ファイアウォールでポート 80 を開くことです。 私はファイアウォールとして iptables を使用しているため、/etc/sysconfig/iptables ファイルを変更して、HTTP プロトコルを権限として追加しました。 ファイル全体は次のようになります。

# iptables サービスのサンプル設定
# これを手動で編集するか、system-config-firewall を使用することができます
# このデフォルト設定にポートやサービスを追加するよう依頼しないでください
*フィルター
:入力受け入れ[0:0]
:転送承認[0:0]
:出力受け入れ[0:0]
-A 入力 -m 状態 --state RELATED、ESTABLISHED -j ACCEPT
-A 入力 -p icmp -j 受け入れ
-A 入力 -i lo -j 受け入れ
-A 入力 -p tcp -m 状態 --state 新規 -m tcp --dport 22 -j 受け入れる
-A 入力 -p tcp -m 状態 --state 新規 -m tcp --dport 80 -j 受け入れる
-A 入力 -j 拒否 --拒否-icmp-ホスト禁止
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
専念

ファイルの下部から 3 行目に、ポート 80 での着信トラフィックを許可する新しい行を追加しました。ここで、iptables 構成ファイルを再ロードします。

[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables

index.htmlファイルを作成する

index.html ファイルは、特定のページにアクセスする代わりにドメイン名を使用して Web サイトにアクセスする場合のデフォルト ファイルです。 /var/www/html に index.html という名前のファイルを作成し、そこに Hello World という文字列を追加します。これを機能させるために HTML タグを追加する必要はありません。 Web サーバーの唯一の役割は、テキスト データのストリームを提供することです。サーバーは、データが何であるか、またそれをどのように表示するかについては認識していません。要求元のホストにデータをストリーミングするだけです。

ファイルを保存したら、所有権を apache.apache に設定します。

[root@testvm1 html]# chown apache.apache index.html

Apacheを起動する

Apache は簡単に起動できます。 Fedora の現在のバージョンでは systemd が使用されています。 次のコマンドを実行して起動し、サーバーのステータスを確認します。

[root@testvm1 ~]# systemctl httpdを起動します
[root@testvm1 ~]# systemctl ステータス httpd
● httpd.service - Apache HTTP サーバー
  ロード済み: ロード済み (/usr/lib/systemd/system/httpd.service; 無効; ベンダープリセット: 無効)
  アクティブ: 2018-02-08 13:18:54 EST 木曜日からアクティブ (実行中)、5 秒前
   ドキュメント: man:httpd.service(8)
 メイン PID: 27107 (httpd)
  ステータス: 「リクエストを処理中...」
  タスク: 213 (制限: 4915)
  Cグループ: /system.slice/httpd.service
      ├─27107 /usr/sbin/httpd -DFOREGROUND
      ├─27108 /usr/sbin/httpd -DFOREGROUND
      ├─27109 /usr/sbin/httpd -DFOREGROUND
      ├─27110 /usr/sbin/httpd -DFOREGROUND
      └─27111 /usr/sbin/httpd -DFOREGROUND
2月8日 13:18:54 testvm1 systemd[1]: Apache HTTP Serverを起動しています...
2月8日 13:18:54 testvm1 systemd[1]: Apache HTTPサーバーを起動しました。

コマンドはサーバーによって異なる場合があります。 SystemV 起動スクリプトを使用する Linux システムでは、コマンドは次のようになります。

[root@testvm1 ~]# サービス httpd を開始
httpd を開始しています: [2018 年 2 月 9 日金曜日 08:18:07] [ OK ]
[root@testvm1 ~]# サービス httpd ステータス
httpd (pid 14649) が実行中です...

ホスト コンピューターに Firefox や Chrome などのブラウザーがある場合は、ブラウザーの URL 行に URL localhost を使用して、Web ページを表示できます。これは簡単なように思えます。 Lynx などのテキスト モードの Web ブラウザーを使用して Web ページを表示することもできます。まず、Lynx をインストールします (まだインストールされていない場合)。

[root@testvm1 ~]# dnf -y lynxをインストール

次に、次のコマンドを使用して Web ページを表示します。

[root@testvm1 ~]# lynx ローカルホスト

私のターミナルではこうなります。ページ上の空白部分をかなり削除しました。

 こんにちは世界
<中略>
コマンド: 矢印キーで移動し、'?' でヘルプを表示し、'q' で終了し、'<-' で戻ります。
 矢印キー: 上下に移動。右でリンクをたどり、左で戻ります。
 ヘルプ オプション 印刷 移動 メイン画面 質問 /=検索 [削除]=履歴リスト```

次に、index.html ファイルを編集し、次のような HTML タグを追加します。

<h1>Hello World</h1>

ブラウザを更新してください。 Lynx の場合は、Ctrl + R のキーの組み合わせを使用します。 結果は少し違って見えます。端末がカラーをサポートしている場合はテキストがカラーで表示され、Lynx は中央に配置されたタイトルを表示します。 GUI ブラウザでは、テキストは大きなフォントで表示されます。

 こんにちは世界
<中略>
コマンド: 矢印キーで移動し、'?' でヘルプを表示し、'q' で終了し、'<-' で戻ります。
 矢印キー: 上下に移動。右でリンクをたどり、左で戻ります。
 ヘルプ オプション 印刷 移動 メイン画面 質問 /=検索 [削除]=履歴リスト

追記

この簡単な演習からわかるように、Apache Web サーバーの設定は簡単です。 正確な詳細は、ディストリビューションと、そのディストリビューションによって提供される Apache のバージョンによって異なります。 私の環境では、これは非常に簡単な演習です。

上記は、編集者が紹介した Apache Web サーバーの設定手順です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • CentOS 7 での Apache Web サーバーのインストールと設定のチュートリアル
  • Apache Web サーバーを安全に構成するための完全なガイド
  • Apache2 WEBサーバーの設定手順の共有
  • Apache VirtualHost を使用して単一のサーバー上に複数の Web サイトを構築する方法
  • CentOS 6.5 ウェブサーバー Apache のインストールと基本設定
  • Apache ベースの .NET 2.0 をサポートする Web サーバーの構築
  • Linux Apache ウェブサーバー

<<:  InnoDB の主な機能 - 挿入キャッシュ、2 度書き込み、適応ハッシュ インデックスの詳細

>>:  JS は Baidu 検索ボックスを実装します

推薦する

シンプルなメッセージボードケースを実現するJavaScript

参考までに、Javascriptを使用してメッセージボードの例(メッセージ削除あり)を実装します。具...

HTML Webページ作成チュートリアル iframeタグを慎重に使用してください

iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...

MySQLでインデックスエラーが発生する状況について簡単に説明します

以下に、トレーニング機関からのヒントと私自身の要約をいくつか示します。以下のインデックスの内容を説明...

XHTMLコードの一般的なアプリケーション問題をまとめる

<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...

Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法

> MySQL 5.7 クラスタ マスターとスレーブをデプロイする (テストのみ)イメージバー...

VC6.0をWIN10にインストールすると使用できない問題の解決方法

VC6.0は確かに古すぎるVC6.0は昔の開発ツールです。現在のwin10では対応していません。しか...

el-select のスタイルを変更する方法の詳細な説明: popper-append-to-body と popper-class

elementUI が提供する el-select コンポーネントのスタイルを変更する方法この問題...

CSS における位置指定の概要

CSS には 4 種類の配置方法があり、シナリオによって効果が異なります。ここでは、これら 4 種類...

JSはclip-pathを使用して動的領域クリッピング機能を実装します

背景今日、CodePen を閲覧していたところ、非常に興味深い効果を見つけました。 CodePen ...

ローカルサーバーを構築するためのwebpack-dev-serverの実装

目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...

知らないかもしれない奇妙で興味深いDockerコマンド

はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...

インターフェースなしで Centos7 に JDK と Tomcat をデプロイするチュートリアル

1. xshell6をインストールする2. サーバー接続を作成し、ユーザー名とパスワードを入力します...

Linux teeコマンドの使い方の詳しい説明

teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

CSS3 グラデーション背景の互換性の問題

グラデーションの背景色を作成するときは、 linear-gradient() 関数を使用して線形グラ...