Apacheのインストール作業

久しぶり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 | パスワードの状態を表示 |
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
インストール出来ました!