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

推薦する

HTTP 戻りコード一覧(中国語と英語の説明)

httpリターンコードリスト(以下は概要です)詳細な中国語の説明についてはここをクリックしてくださ...

ウェブページの背景画像を伸ばす2つの方法

解決策は2つあります。 1つはCSSで、background-size:coverを使用して画像の伸...

Mac 向け MySQL 5.7.17 のインストールと設定のチュートリアル

1. MySQLをダウンロードする公式サイトのダウンロードページをクリックすると次のページに入ります...

dockerでlnmp環境を構築する方法

プロジェクトディレクトリを作成する php ディレクトリをコピーする次のプロジェクト構造を作成します...

mysqlはストアドプロシージャを使用してツリーノード取得メソッドを実装します。

図に示すように: テーブルデータこのようなツリーの場合、「Gao Yinrui」の下のすべてのノード...

JS での矢印関数と this の記述と理解

目次序文1. JSで関数を書く方法1. 通常の関数の書き方2. 矢印関数の書き方2. 通常の関数でこ...

Vue.jsは音楽プレーヤーを実装します

この記事では、音楽プレーヤーを実装するためのVue.jsの具体的なコードを参考までに共有します。具体...

CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...

CSS スティッキーフッター実装コード

この記事では、CSS スティッキー フッターの実装コードを紹介し、共有します。詳細は次のとおりです。...

RedisとMemcacheの比較と選び方

最近 redis を使っていて、とても便利だと感じているのですが、インメモリ データベースを選択する...

Windows10のマウスを模倣して境界線を光らせる効果を実現するCSSの詳細解説

最新の Windows 10 アップデートをインストールした後、システム UI の詳細な効果が顕著に...

MySQL での外部キーの作成、制約、削除

序文MySQL バージョン 3.23.44 以降では、InnoDB エンジン タイプのテーブルは外部...

mysql はインデックスを無効にしますか?

mysql の IN はインデックスを無効にしますか?しませんよ! 結果をご覧ください: mysq...

フロントエンドはJavaScriptを通じてCADグラフィックスの詳細を作成および変更します。

目次1. 現状2. JSでCADグラフィックを作成および変更する2.1 サポートされているCADエン...

CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...