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 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

MySQLトリガーの使用

目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...

HTML の marquee 属性の詳細な説明

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...

docker ベースの redis-sentinel クラスターの構築例

1. 概要Redis Cluster は、Redis ノードのグループ間での高可用性とシャーディング...

MySQLインストーラがコミュニティモードで実行されている場合の解決策

今日、リモートデスクトップを実行してログインしているときにこのプロンプトを見つけました「MySQL ...

nohup /dev/null 2>&1 の使い方の詳しい説明

nohup コマンド: プロセスを実行しており、アカウントからログアウトしてもプロセスが終了しないと...

Windows Server 2008 64ビット MySQL5.6 インストール不要版 設定方法図

1 公式ウェブサイトから MySQL 5.6 バージョンの圧縮パッケージmysql-5.6.36-w...

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...

CSSで制御可能な点線を実装する方法

序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...

シンプルなタブバー切り替えケースを実現するJavaScript

この記事では、タブバーの切り替え効果を簡単に実現するためのJavaScriptの具体的なコードを参考...

Vue ディレクティブ v-html と v-text

目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...

JS で単一ファイルコンポーネントを実装する方法

目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

VMwareを使用したPermeateレンジシステムのインストール手順の詳細説明

1. 背景私たちは時々社内研修を行っており、実験環境をよく利用しています。最初はdockerコンテナ...

Vue lazyload 画像遅延読み込み例の詳細な説明

ドキュメント: https://github.com/hilongjw/vue-lazyload 1...

MySQLインデックスを最適化する方法

1. MySQL のインデックスの使用方法インデックスは、特定の列の値を持つ行をすばやく見つけるため...