Apacheのインストール作業

2021年7月26日

久しぶりapacheをインストールしなければならず、すっかり忘れてしまっていたので書き残します。

apacheインストールの準備作業

apacheをインストールする前にapache専用のユーザを作成・設定します。

apacheユーザ作成

apacheユーザの作成を行います。useraddコマンドを入力します。

useradd -s /sbin/nologin www

コマンドuseraddの解説は次の通りです。

コマンド解説

useradd -s ログインシェル名 user名

新たなユーザの作成を行います。

-sログインシェルの指定

用語解説

ログインシェル

ログインシェルとは

ログインして最初に動き出すシェル

ログインシェル(login shell)とは

ログインシェルには次のような種類があります。

  • /bin/sh
  • /bin/bash
  • /usr/bin/sh
  • /usr/bin/bash

ログインができないシェル

  • /bin/false
  • /sbin/nologin

/sbin/nologinというログインできないシェルもあります。

falseとnologin

/bin/falseと/sbin/nologinの違いは

/bin/false
エラーを返す

/sbin/nologin
エラーメッセージを返す

/bin/falseと/sbin/nologinの違い

apacheユーザのパスワード設定

次に作成したユーザのパスワードを設定します。passwdコマンドを入力します。

passwd www

コマンドpasswdの内容は次の通りです。

コマンド解説

passwd ユーザ名

作成したユーザにパスワードを設定・変更を行います。

上記コマンドを入力したら次のように表示されます。

Changing password for user www.
New password:

そしたら設定するパスワードを入力してください。
注意:入力しても何も表示されませんが気にせず続けてください。

そうすると確認の為に再入力を促してくるのでもう一度入力してください。

Retype new password:
passwd: all authentication tokens updated successfully.

成功すれば上記のように表示されます。

パスワードが7文字以下の場合次のように表示されます。

BAD PASSWORD: The password is shorter than 7 characters
Retype new password:

7文字以下でも設定は可能です。セキュリティを考慮する時は7文字以上に再度設定を行いましょう。

apacheユーザの確認

ユーザ確認は次のコマンドで確認できます。

cat /etc/passwd | grep www
コマンド解説

cat /etc/passwd

ユーザ一覧を表示

passwdコマンドでも確認することが出来ます。

passwd -S www
コマンド解説

passwd -S ユーザ名

注:Sは大文字

ユーザアカウント状態の表示

-Sパスワードの状態を表示
【例】 > passwd -S www www PS 2020-03-20 0 99999 7 -1 (Password set, MD5 crypt.)
wwwユーザ名
PS状態
LK・・・無効
NP・・・存在しない
PS・・・有効
2020-03-20更新日
0最短期限
99999最長期限
7警告期間
-1使用不能期間

idコマンドでも確認する事が出来ます。

id www

レポジトリの追加

まずは今現在のレポジトリを確認します。

ls -1 /etc/yum.repos.d/
# オプション1(-1)はリストで表示
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo

これが現在のレポジトリの状態です。レポジトリ追加後再確認します。

最新のapacheをインストールする為にはIUSレポジトリが必要で、IUSレポジトリをインストールする為にはepelレポジトリのインストールが必要になります。

epelレポジトリのインストール
  ↓
IUSレポジトリのインストール
  ↓
apacheのインストール

この順番で行います。

epelレポジトリのインストール

epelレポジトリのインストールを行います。

yum -y install epel-release

IUSレポジトリのインストール

続いてIUSレポジトリのインストールを行います。

yum install -y https://centos7.iuscommunity.org/ius-release.rpm

これでepel・IUSレポジトリがインストールできたので念のため、レポジトリを確認してみます。

ls -1 /etc/yum.repos.d/
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
epel.repo
epel-testing.repo
ius-archive.repo
ius.repo
ius-testing.repo

epelとIUSのレポジトリが追加されているのが確認できました。

レポジトリ設定ファイルの変更

epelやIUSは最新バージョンのパッケージもありますが不安定なパッケージも存在します。その為、基本的には使わないようにするための変更を行います。

epelの設定ファイルepel.repoを開いて編集します。

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

enabled=1→0に変更します。

[epel]
enabled=0

[epel-debuginfo]
enabled=0

[epel-source]
enabled=0

続いてIUSの設定ファイルius.repoを開いて編集します。

vi /etc/yum.repos.d/ius.repo

enabled=1→0に変更します。

[ius]
enabled=0

[ius-debuginfo]
enabled=0

[ius-source]
enabled=0

設定ファイルの修正は完了です。

これで全てのインストール準備作業は終了しました。

apacheのインストール

それではapacheのインストールに入っていきます。apacheも日々進化して新しいモジュールやパッケージも次々登場します。その為エラーもよく発生します。エラーの内容をよく確認して対応しましょう。でもだいたいのエラー内容が「何かが足りませんよ~」というメッセージが多いと思います。

依存関係のあるパッケージのインストール

まずはapacheと依存関係にあるパッケージをインストールしましょう。インストールするパッケージは次の通りです。

  • openldap-devel
  • expat-devel
  • libdb-devel
  • mailcap
  • system-logos

これらをまとめてyumでインストールします。

yum install -y openldap-devel expat-devel libdb-devel mailcap system-logos

(おまけ)エラー対応によるパッケージのインストール

本来ならここでapacheのインストールをするんですが、yumでインストールしたらエラーが出てしまいました。インストールしたコマンドは次の通りです。

yum install -y --disablerepo=base,extras,updates --enablerepo=ius httpd httpd-devel mod_ssl

これでインストールを行いエラーが出てしまいました。エラー内容は次の通りです。

Error: Package: httpd24u-2.4.41-1.el7.ius.x86_64 (ius)
           Requires: libbrotlienc.so.1()(64bit)
Error: Package: httpd24u-2.4.41-1.el7.ius.x86_64 (ius)
           Requires: libnghttp2.so.14()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

エラーの内容は「apacheを入れるには次のパッケージが必要ですよ~、libbrotlienc.so.1()(64bit) と libnghttp2.so.14()(64bit)」って言ってます。なのでこの二つをインストールします。

尚、パッケージ名は
libbrotlienc.so.1()(64bit) → brotli
libnghttp2.so.14()(64bit) → libnghttp2
となります。

Brotliのインストール

BrotliとはGoogleが開発した新しい圧縮アルゴリズムです。インストールのコマンドは次の通りです。

yum install -y --enablerepo=epel brotli

libnghttp2のインストール

libnghttp2とはHTTP/2用のライブラリです。インストールのコマンドは次の通りです。

yum install -y --enablerepo=epel libnghttp2

これで依存関係のある全てのパッケージがインストール出来ました。

apache(httpd)パッケージのインストール

ついにapache本体のインストールです。必要なパッケージはapache本体も含めて次の三つです。

  • httpd (webサーバー本体)
  • httpd-devel (開発ツール・モジュールなどのパッケージ)
  • mod_ssl (ssl用モジュール)

それではインストールしましょう。コマンドは次の通りです。

yum install -y --disablerepo=base,extras,updates --enablerepo=ius httpd httpd-devel mod_ssl
コマンド解説

yum install -y –disablerepo=base,extras,updates –enablerepo=ius パッケージ名

-yインストールの許可
–disablerepoリポジトリの無効化
–enablerepoリポジトリの有効化

※IUSのレポジトリを追加時に、IUSはデフォルトで使用しないようレポジトリ設定ファイルに修正を加えています。その為enablerepoでIUSを指定する必要があります。ベースのレポジトリは念のため無効にしています。

インストール確認

最後に正しくインストールされているか確認します。次のコマンドを入力してapacheがインストールされているか確認します。

yum list installed | grep httpd

結果は次の通りです。

httpd24u.x86_64                    2.4.41-1.el7.ius           @ius
httpd24u-devel.x86_64              2.4.41-1.el7.ius           @ius
httpd24u-filesystem.noarch         2.4.41-1.el7.ius           @ius
httpd24u-mod_ssl.x86_64            1:2.4.41-1.el7.ius         @ius
httpd24u-tools.x86_64              2.4.41-1.el7.ius           @ius

インストール出来ました!

Apache

Posted by Bright_Noah