Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Apache

ApacheをCentOS 7にインストールする手順と「yum install httpd」のエラー対処など

投稿日:2020年6月16日 更新日:

(0)目次&概説

(1) 記事の目的
 (1-1) 目的とApache概要
 (1-2) 前提条件
(2) Apacheの導入手順
 (2-1) Apacheのインストール
 (2-2) Apacheのサービス起動
 (2-3) Apacheのポート開放
  (2-3-1) HTTP通信の場合(80番)
  (2-3-2) HTTPS通信の場合(443番)
 (2-4) インストールの疎通チェック
(3) エラー対応
 (3-1) [Errno -1] repomd.xml does not match metalink for XXXXX
  (3-1-1) エラー概要
  (3-1-2) エラー原因
  (3-1-3) エラー対処①(応急処置)
  (3-1-4) エラー対処②(本対応?)
  (3-1-5) 用語の補足
  (3-1-6) 参考:repomd.xmlの記述例
(4) 補足情報
 (4-1) 仮想ホストの有効化について
 (4-2) TomcatとApacheの同居について

(1) 記事の目的

(1-1) 目的とApache概要

・ApacheをCentOS7にインストールする手順を紹介する事です。
・Apacheは世界中で最も使われているHTTP Webサーバ(静的コンテンツの配信)の一つです。
・Apacheの役割はサーバとクライアント(ブラウザ)との間の接続を確立することです。
・Apache Tomcatも基本的なWebサーバの機能は兼ね備えているものの、主たる機能は「サーブレットコンテナ」であり、JSP/Servletといった動的コンテンツの配信をするためのアプリケーションサーバに相当している点で、Apacheとの大きな違いがあります。
・OSのパッケージ管理システム(yumやapt)から簡単にインストールが可能です。
・Apacheは世界中の約60%程度のWebサーバで利用されていると言われています。

目次にもどる

(1-2) 前提条件

rootでない一般ユーザ(sudo権限あり)が利用できること。

目次にもどる

(2) Apacheの導入手順

(2-1) Apacheのインストール

CentOS7のデフォルトのパッケージ管理システムである「yum」を利用してインストールします。

$ sudo yum install httpd

(図211)


※yumの基礎については下記記事の「(3) yum(パッケージ管理システム)」を参照ください。

 

(2-2) Apacheのサービス起動

インストールが完了したら、systemdコマンドを利用してApacheのサービスを起動します。

$ sudo systemctl start httpd

 

また次回以降はOS起動時にサービスが自動起動するように設定します。
$ sudo systemctl enable httpd.service

(図221)

目次にもどる

(2-3) Apacheのポート開放

(2-3-1) HTTP通信の場合(80番)

「80番ポート」を解放する事で、Web通信を行えるようにします(HTTPリクエストを受けられるようにする)

$ sudo firewall-cmd --add-service=http --permanent

設定変更を反映させるためfirewalldの設定を再ロードします。

$ firewall-cmd --reload

(図231)

(2-3-2) HTTPS通信の場合(443番)

もしHTTPSでコンテンツを配信する場合は、追加で「https」サービスを有効化し「443番ポート」の開放を行います。

$ sudo firewall-cmd --add-service=https --permanent

設定変更を反映させるためfirewalldの設定を再ロードします。

$ firewall-cmd --reload

(2-4) インストールの疎通チェック

ブラウザから自身のサーバのIPアドレスを含んだ下記URLを入力する事で、Apacheのインストールが成功したかどうか確認ができます。もしインストールが成功していればCentOS7 Apacheのウェブページ(テスト疎通用)に遷移します。

http://[Your IP adress]/

(図241)

目次にもどる

(3) エラー対応

(3-1) [Errno -1] repomd.xml does not match metalink for XXXXX

(3-1-1) エラー概要

Apacheのインストールで「sudo yum install httpd」コマンドを実行した際に、上記の「[Errno -1] repomd.xml does not match metalink for XXXXX」エラーが出ました。

(図311)

目次にもどる

(3-1-2) エラー原因

・サーバには接続できているものの、epelのメタリンクの整合性が取れていないためエラーになっている
・根本的にはepelのバージョンが古いため起きているようで、古いメタデータが悪さをしているようです。
・リポジトリのメタデータを保持するxmlファイルが「repomd.xml」と呼ばれており、他xmlの場所やタイムスタンプなどの情報を保持しています

目次にもどる

(3-1-3) エラー対処①(応急処置)

一旦はミラーリスト(mirrorlist)ではなく、ベース(baseurl)を見に行くように設定を変更する事でエラー自体は回避できました。
<手順>
①epel.repoファイルを編集します。

$ vi /etc/yum.repos.d/epel.repo

②epel.repoファイルの「baseurl」の行をコメント解除します。

baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS

③「mirrorlist」の行をコメントアウトします。

#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch

(図313)(※注)編集する所は複数箇所あります

目次にもどる

(3-1-4) エラー対処②(本対応?)

このコマンドはメタデータの不整合によるエラーを解消するため、有効化されている各リポジトリのxmlメタデータ削除を行います。

$ sudo yum clean metadata

 

(3-1-5) 用語の補足

「baseurl」はリポジトリの全ての資産があるURLです。一方で「mirrorlist」はベースに接続出来なかった際に利用したり、ベースの負荷を下げる目的で利用されるURLで、ベースの保持する資源の全部あるいは一部を保持しています。

(3-1-6) 参考:repomd.xmlの記述例

下記の例では「filelists」に関するチェックサムやタイムスタンプ、サイズなど各種メタデータが格納されています。

  <data type="filelists">
    <checksum type="sha256">9731c9f8bcdc772927d90327e29f87d7197f71bf185caa88087c927b83da5c54</checksum>
    <open-checksum type="sha256">c24cc2641db15397dde67dfd71fbf1bf05ab9d241d5aed01cf2612ef30eaaed4</open-checksum>
    <location href="repodata/9731c9f8bcdc772927d90327e29f87d7197f71bf185caa88087c927b83da5c54-filelists.xml.gz"/>
    <timestamp>1591901344</timestamp>
    <size>583571</size>
    <open-size>2189390</open-size>
  </data>

目次にもどる

(4) 補足情報

(4-1) 仮想ホストの有効化について

・単一サーバで複数ドメイン(≒複数ウェブサイト)をホストするためのApacheの機能です。
・CentOS7のApacheはデフォルトで仮想ホストが1つ有効になっており「/var/www/html」ディレクトリのドキュメントを提供するホストです。
・もし複数サイトをホストする場合は「/var/www」配下に新規ドメイン用のフォルダ階層(例:/var/www/example.com/html)を作り「/var/www/html」はリクエストがマッチしなかった場合の救済ページとして残します。
 

(4-2) TomcatとApacheの同居について

特に問題なし。Tomcatを8080ポートで動かし、Apacheを80/443ポートで動かし、加えて「mod_proxy」機能を用いて、ApacheがTomcatがホストするアプリケーションのプロキシとして動作させたりといった構成は良くある例です。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Apache

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Apacheのリバースプロキシでセッションを維持する方法

<目次> (1) Apacheのリバースプロキシでセッションを維持する方法  (1-1) 発生状況・エラーメッセージ  (1-2) 調査  (1-3) 原因  (1-4) 対処法 (1) Apache …

ApacheとNginxの違いやそれぞれの特徴について

<目次> (1) ApacheとNginxの違いやそれぞれの特徴について  (1-1) Apacheとは?  (1-2) Nginxとは?  (1-3) Nginxのアーキテクチャについて  (1-4 …

一つの物理サーバに複数のIPアドレスやドメインを設定する方法~Apacheの仮想ホストの種類や設定方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) Apacheの仮想ホストとは? (3) IPベース仮想ホスト  (3-1) 方式の概要  (3-2) 設定方法 …

Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)

<目次> (1) Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)  (1-1) Let’s Encriptで発行した証明書の期限について  (1-2) …

TomcatのURLに付くポート番号8080を非表示にしてドメイン名のみでサイトにアクセスする方法と手順

本記事で実現したい事は下記2点、①URLのポート番号・アプリ名を非表示(リバプロ)と②JSP/Servlet名非表示(web.xml)です。これらを実現する事でブラウザにドメイン名のみ(例:XXXX. …

  • English (United States)
  • 日本語
Top