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 検索ボックスを実装します

推薦する

MySQL Community Server 5.6.39 のインストール方法

この記事では、MySQLのダウンロードとインストールの詳細なチュートリアルを記載しています。具体的な...

GIFアニメーション効果を模倣した自動ビデオ再生を実現するWeChatアプレットの例

需要背景:ミニプログラムページに GIF ダイナミック画像を挿入しますが、GIF 画像は通常サイズが...

HTMLの基礎を徹底解説(第1部)

1. WEBを理解するWeb ページは主にテキスト、画像、ハイパーリンクなどの要素で構成されていま...

jsシミュレーションでJingdongの詳細ページで画像を拡大する効果を実現

この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介しま...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

VmWareでcentos7をインストールするときにインターネットにアクセスできない問題の解決策

Centos7 のインストール時に VmWare がインターネットにアクセスできない場合はどうすれば...

JS を使用した簡単な雪効果の例の詳細な説明

目次序文主な実装コードHTMLコードJSコード序文南の友達の多くは、雪をほとんど見たことがない、ある...

JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明

JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明MySQL データベースを使用して、...

MySql 5.7.17 winx64 のインストールと設定に関する詳細なチュートリアル

1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカウ...

ie8/ie9/ie10/ie11 chrome firefox を区別するための CSS コード

ウェブサイトの互換性のデバッグは本当に面倒です。今日のウェブサイト デザイナーは、以前よりもはるかに...

MySQLの比較演算子正規表現マッチングREGEXPの使用の詳細な説明

1. データを初期化する `test_01` が存在する場合はテーブルを削除します。 テーブル「te...

Centos8 で Docker を使用して Django プロジェクトをデプロイする詳細なチュートリアル

導入この記事では、django + uwsgi + nginx デプロイメントを使用して、Docke...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

CentOS 8.1 で LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する (チュートリアルの詳細)

目次ステップ1: CentOS 8でパッケージを更新するステップ2: CentOS 8にNginx ...

mysql5.7.22 ダウンロードプロセス図

1. 公式ウェブサイト www.mysql.com にアクセスし、ダウンロードを選択します。 2. ...