「rpm-build」コマンドと「SPECファイル」の確認 [サーバ立ち上げ準備]
■アーカイブファイルを用いてRPMファイルをビルドする。失敗。
|
PHP5.6系の最新版は「5.6.8」とのことですので、ダウンロードします。
当方は「startx」コマンドを実施し「FireFox」からダウンロードしました。
「rpmbuild」コマンド、オプション「-tb」(アーカイブファイルを用いてRPMファイルをビルドする)でビルドしたのですが、「SPEC」ファイルがない模様。
ファイルを作成したりはハードルが高いので、次の方法に移行します……。
■SRPMを用いてにRPMをビルドする。失敗。追加インストール。
|
「IUS」リポジトリにはアーカイブがあるのでそこから「5.6.7」をダウンロードしました。
今度は「rpmbuild」コマンド、オプション「--rebuild」(SRPMを元にRPMを作成する) 、「--clean」(パッケージが作成された後にビルドツリーを削除する)を実施すると、多数の必要パッケージを提示されてしまいました。
その中に「httpd-devel < 2.4 は php56u-5.6.7-1.ius.el6.i386 に必要とされています」という警告があります。これはつまり、すでにインストールしている「apache 2.4.12」がバージョン高すぎだと言っているようです。これもだめということでしょう。
■「apache 2.4.12」に対応している「PHP」のバージョンを探す。
|
前項目でSPECファイルが無いと警告されたときに作られたのかも知れません。
中にもディレクトリが複数作成されており、中を確認してみると「SOURCES」に多数のファイルと「SPECS」に「php56u.spec」なるファイルを確認しました。
見てもさっぱりわかりませんが、以下関係ありそうな文章を発見しました。
# /usr/sbin/apsx with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4
「apache」が2.4より低いバージョンなら「/usr/sbin/apsx」
「apache」が2.4以上のバージョンなら「/usr/bin/apsx」
ということでしょうか。
# /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4
「apache」が2.4より低いバージョンなら「/etc/httpd/conf.d」
「apache」が2.4以上のバージョンなら「/etc/httpd/conf.modules.d」
ということでしょうか。
%if 0%{?rhel} < 7
BuildRequires: httpd-devel < 2.4
%else
BuildRequires: httpd-devel
%endif
うーん。「rhel」とは「Redhat」のことですかね?
バージョンはCentOSと同じだと聞いたことがありますが、とするとOSのバージョンが7より低いバージョンなら「httpd-develは2.4より低いバージョンを」そうでなければ「httpd-develのバージョンに指定なし」つまり、「CentOS6.6」の場合「httpd-devel」は2.4より低いバージョンということになりますかね。
うーーん。「httpd」について、2.4以上についても説明がある以上この「PHP5.6系」は「apache 2.4.12」で動くのではないのかなぁ……。あ、でも「CentOS7」の場合の説明なのかな。わからない。
もう少しバージョン違いのSPECファイルの確認をしてみることにします。
■複数バージョンのSPECファイル確認。
|
それらのソースパッケージから「rpm2cpioとcpio」コマンドを使用して「SPECファイル」を取り出してそれぞれ確認してみました。
バージョン | SPECファイル内容抜粋 | 可能/不可能 |
---|---|---|
5.6.7 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.6-2 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.6-1 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.5 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.4 | BuildRequires: httpd-devel >= 2.0.46-1 BuildRequires: httpd |
可能 |
5.5.23 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.5.22 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.5.21 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.5.20 | BuildRequires: httpd-devel >= 2.0.46-1 | 可能 |
バージョン「5.6.4」と「5.5.20」は「httpd-devel >= 2.0.46-1」とあります。これなら条件として「apache 2.4.12」も満たしているということでしょうか。
ということで、より新しい「PHP5.6.4」ソースパッケージをビルドしてみようと思います。
「Guest_Additions」と「X-Window」のインストール。 [サーバ立ち上げ準備]
■「Guest_Addtions」をインストールする前準備
サーバのインストールとは直接関係ないのですが、VirtualBoxを使用している以上、インストールしないで不便に使用することもないので。
|
あとついでにkernelもアップデートしておきました。再起動が必要です。
切りが良いのでVirtualBoxのスナップショットをしておきます。
■「X-Window」のインストール。
|
「yum groupinstall "General Purpose Desktop"」もよく併記されていますが、これにはhttpd等も入っており、ソフトウェア群のようであるので、なるべく自分の意思でインストールしたいのでこれはパスします。
■「X-Window」の起動と設定。
|
Xの画面からリリースするにはキーボード右側の「Ctrl」キー押下です。
デスクトップ画面には、「Guest_Additions」のCDアイコンが表示されています。
■「X-Window」環境の漢字化。
|
|
設定ファイルを編集するときはバックアップを取ってからにします。
今回はインストール時に決定した事項があるので、記入済みがありました。
最後だけ「LANG=ja_JP.UTF-8」の追記が必要です。
次回の「startx」コマンド実施時に選択があるので、「古い名前のままにする」で良いでしょう。
■「Guest_Addition Tools」のインストール。
|
※Windows側の変更です。
デスクトップにマウントされたCDイメージはアンマウントしておきましょう。
リポジトリの編集。 ←前 後→ FireFoxのインストール。
リポジトリの編集。 [サーバ立ち上げ準備]
■リポジトリの設定。
|
「yum-plugin-priorities」は利用するリポジトリに優先順位をつけ、高プライオリティのリポジトリでインストールしたパッケージは、低プライオリティのリポジトリに更新されることがないとのこと。
えーとつまり、「高プライオリティの旧パッケージ」と「低プライオリティの新パッケージ」が存在する場合、新しくても低プライオリティの方は採用されないということでしょうか。
同じバージョンのパッケージなら低リポジトリを避けデフォルトの方を利用するという、信頼性を実現するプラグインなのかもしれません。
設定には「priority=1」~「priority=99」までの順位付けが可能で、数値が小さいほど優先順位は高くなります。
順位付けは「enable=1」のリポジトリの内で行われるようです。つまり「enable=0」は除外されます。
インストールする際には公式(デフォルト)リポジトリと外部リポジトリの扱うパッケージをよく理解している必要がありそうです。
やはり何でもかんでも楽できるというわけでもないようですね。 とりあえず公式リポジトリを「enable=1」「priority=1」外部リポジトリを「enable=0」「priority=2」としておくことにします。
「yum-plugin-changelog」は「yum update」でバージョンアップされたパッケージの更新履歴を表示してくれます。
詳細は使用したときに記述したいと思います。
■リポジトリファイルの確認。
|
「disable」は無効のリポジトリを「all」は両方を表示させます。
これは「/etc/yum.repos.d/」内にある「.repo」ファイルに「enable=1」または「enable」未記述、が記述されているもののリストアップです。
「enable=0」は無効になります。
多数のリポジトリを追加したので、管理も大変だと思うのでデフォルト以外は通常は「enable=0」としておき、デフォルトのリポジトリでは提供されていないパッケージ、バージョンを入手したいとき、一時的に「enable=1」とするコマンドオプション「--enablerepo=[リポジトリID]」を使用したいと思います。
■外部リポジトリの無効、優先順位の設定。
|
その作業を有効外部リポジトリに全て行います。
■リポジトリの設定リポジトリファイルの確認。
|
外部リポジトリの追加。 [サーバ立ち上げ準備]
■「yum」コマンドを使用するために。
ど素人には段々ハードルが上がって参りました。(早っ!)CentOSにはパッケージをインストールするのに幾通りかの方法があるということですが、当方には不可解な依存関係というハードルがあり、これを解決してくれるのが「yum」コマンドを使用したインストールです。
これを利用するための知識や準備を書き残しておきます。
■PGP-KEYのインストール。
|
チェックにはリリース元が公開しているGPG公開鍵が必要で、CentOSには「/etc/pki/rpm-gpg」に用意してあります。
■GPG公開鍵のインポート。
|
「rpm --import」コマンドでインポートします。他のパッケージには他のGPG公開鍵が必要になります。
|
リポジトリとはパッケージファイルの置き場所のことで、上記のデフォルトのリポジトリだけでなく、外部のリポジトリも存在します。
リポジトリごとに揃えてあるパッケージの種類やバージョンが異なるので、使い分ける必要があるとのこと。
■インストールされているリポジトリの確認。
|
そこからパッケージをもってくると言うことでしょう。
■外部リポジトリのインストール。
|
後半のリポジトリのインストールは方法が異なりますが、重要なのは設定の方だと思うので、楽な方法を選べば問題ないありません。
リポジトリは自分でも作れるそうなのでいくつ存在するかは不明ですが、有効、無効、プライオリティといった管理もあるので、あまり多くなくても良いかなと思います。
■再度インストールされているリポジトリの確認。
|
外部レポジトリを導入すると上位ベンダーやCentOSとの互換性が失われる他、標準パッケージの構成では起こりえない問題が発生することがあるとのこと。
注意が必要ですね。
ホスト名の変更 [サーバ立ち上げ準備]
■「/etc/sysconfig/network」の変更。
|
数少ない機器ですので、IPアドレスを覚えるのも苦にはならないのですが、トラブルの原因にもなるとのことで変更することにします。
WEBサーバやメールサーバの指定もIPアドレスじゃ無くて指定しやすいと思われます。
■「etc/hosts」を編集する。
|
「IPアドレス」「ホスト名」「ホスト別名」という書式でホスト名は別名を複数追記できます。
IPアドレスは8、10、16進数で指定可能とのこと。
「127.0.0.1」はIPv4で表記されたローカルループバックアドレスで「::1」はIPv6の物です。
ホスト名は正式名称を記述します。通常は「ノード名」.「ドメイン名」とのこと。
今回は下記のように編集してみました。
|
「www」は「WEB」サーバを指定するのに使えると思っています。
今回はパスしましたが「127.0.0.1」の方も変更すべきなのかもしれません。
■ホスト名の確認。
|
ループバックとlocalhostはそのままでも良いような気もしますが……。
←SELinuxを停止させる 前 後 外部リポジトリの追加。→
SELinuxを停止させる [サーバ立ち上げ準備]
■SELinuxの状態を確認する。
|
手順を間違えるとカーネルパニックを起こすことがあるらしいので注意とのこと。
■「/boot/grub/grub.conf」のバックアップ及び編集。
|
■「/etc/selinux/config のバックアップ及び編集。
|
「#SELINUX=enforcing」
その次の行あたりに「SELINUX=disable」を書き加えます。
■reboot する。
|
■再度SELinuxの状態を確認する。
|
「VirtualBox」を使用しているので、この辺でやり直しができる「スナップショット」をかけておきます。
ネットワークの設定 [サーバ立ち上げ準備]
■「/etc/sysconfig/network」の設定。
|
「HOSTNAME」はCentOSインストール時にデフォルトで入力してあった物がそのまま採用されている。後に変更予定。
「GATEWAY」はローカルネットワーク(LAN)とグローバルネットワーク(INTERNET)の境に置かれて、インターネットへの出口とされるネットワーク機器のことで、通常ルータがその役割を負うことが多いでしょう。
GATEWAYのLAN側のIPアドレスはプライベートIPで通常クラスCと呼ばれる192.168.0.1~192.168.255.254までが使用可能。(ルータによるかも知れません。)
ただし、他のネットワーク機器と重複してはいけません。
■「/etc/sysconfig/network-scripts/ifcfg-eth0」を編集する。
|
サイトを見て回ると、この設定をすると以下の「/etc/resolv.conf」に設定が反映されるとのこと。(当方は反映されていないようだった。「NM_CONTROLLED="no"」が原因かも?)
■「/etc/resolv.conf」を編集。
|
「/etc/resolv.conf」はCentOSが使用するDNSサーバの情報を記述するファイルとのこと。
基本的には「ネームサーバのアドレス」「domain」「search」の項目があります。
「ネームサーバのアドレスは」上から順に使用され、三つまで記述可能とのこと。
「domain」は自分が所属しているドメイン名を指定します。すると、DNS を引く時にこのドメイン名を付加して解決しようとしてくれるとのこと。
「search」は「domain」を複数指定できるようにしたものとのこと。
指定したドメインを順に付加して、DNS を引いてくれます。
IPアドレス | ホスト名 |
---|---|
192.168.0.66 | bibo-roku1.sample.com |
192.168.0.77 | bibo-roku2.sample.com |
上記のような場合、「resolv.conf」に以下のように記述した場合、「sample.com」を自動に付加して「bibo-roku1」や「bibo-roku2」と入力しただけで名前解決ができる模様。
|
「search」の場合は以下のように複数のサブドメインを利用できると言うことかな?
IPアドレス | ホスト名 |
---|---|
192.168.0.66 | bibo-roku1.hoge.sample.com |
192.168.0.77 | bibo-roku2.foo.sample.com |
|
■設定を反映。
|
リスタートにはルート権限が必要です。
リスタート後はネットワーク開通の確認を「ping」コマンドや「nslookup」、インストールしてあるならば「ブラウザ」で行います。
「ping」コマンドは「ctrl+C」で止まります。
開通していれば、VirtualBoxのホストOS(Windows)側からターミナルソフトのSSH2で接続が可能です。
VirtualBoxのネットワーク設定は「ブリッジアダプター」で、使用しているホストOSのネットワークポートもしくは無線ネットワークカードを指定します。
これでホストとゲストのIPアドレスを別々に設定できました。
ユーザーをwheelグループに追加 [サーバ立ち上げ準備]
■ユーザーをwheelグループに追加
|
通常、UNIX系システムでは一般ユーザーがスーパーユーザー権限を得るためにsuコマンドを使用しますが、何らセキュリティの対処が行われていないシステムでは、多くの場合どの一般ユーザーでもスーパーユーザー権限を得ることができます。
PAMを利用すると、スーパーユーザー権限を得ることが可能な一般ユーザーを限定でき、この権利を持っている一般ユーザーをwheelと呼ばれるグループに所属させます。
■login.defsファイルを編集
|
「/」はrootディレクトリ(Windowsで言うフォルダだろうか)というファイル構造の最上部のことで、他のファイルは全てその下部に収まっているとのこと。
つまり、最上部から探し出すという指示。
「-name」は検索するファイル名を指示。 結果は/etc/login.defs とのこと。
「vi」はテキストファイルを作成、編集するコマンドとのことですが、他にも種類はあるとのこと。
vi /etc/login.defs と入力。
ターミナル画面に今までのコマンドが消され、ファイル内容のテキストが映し出されます。
「i」キー押下により、画面左下に「-- INSERT --」と表示され編集モードに移行します。
矢印キー他でプロンプトを移動させることが出来ます。
「SU_WHEEL_ONLY yes」を追記し、「Esc」キー押下により編集モードから抜け、「:」キー押下でコマンド入力モードにし、「w」+「q」キー押下で保存、「vi」終了。(「w」保存「qは終了」)
■PAMの設定。
|
コメントアウトとは文章の先頭にある「#」を消去することで、設定として読み込まれる状態にすることです。
■「visudo」コマンドの編集。
|
次に、「Esc」キーを押下、「:」を押下して「/ Allow」と入力すると上記の文を検索しますので、「i」キー押下で、「root」の下に「bibo-roku ALL=(ALL) ALL」を追記します。
終了したら「Esc」「:」「w」+「q」キー押下で保存します。
■ユーザーが所属するグループを確認。
|
「groups」で「bibo-roku」「wheel」の二つのグループに所属していることがわかります。
同様に「groups」コマンドでも確認できます。
■UID
ユーザーの種類 | ユーザーの機能 | UIDの範囲 |
---|---|---|
root | 特権ユーザー | 0 |
システムユーザー | アプリケーションを実行するユーザー | 1-499 |
一般ユーザー | Linux上で作業を行うユーザー | 500 - 60000 |
UIDが500ですから、「bibo-roku」は「一般ユーザー」ということですね。
■GID
グループの種類 | UIDの範囲 | ||
---|---|---|---|
rootグループ | 0 | ||
|
1-499 | ||
個人グループ | 500-60000 |
メイングループの表示、GIDが500ですから、「bibo-roku」は「個人グループ」ということですね。
■GROUPS
サブグループの列挙、groups以降は所属するグループ全てを表示します。「wheelグループ」に追加したため「500」と「10」があります。■「sudo」コマンドを確認。
|
新規ユーザー、パスワード作成 [サーバ立ち上げ準備]
■新規ユーザー作成
|
root だとあらゆる作業が可能で、間違った操作も取り返しがつかないからとか。
大事に至った経験がないので、実感はありませんが先人の知恵には従うことにします。
ということで、作業用のユーザーアカウントを作りたいと思います。
意味はありませんがサイト名と同じ「bibo-roku」にしてみます。「-」は使えるのかな?
特に注意されませんでしたので「-」使えるようですね。
root 権限が必要なコマンドです。
※「こちらの記事」で「rpm-build」コマンドを使用するための専用ユーザーを作成します。
「mockbuild」ユーザーを作成します。
■bibo-rokuでログイン
|
Linux では新規ユーザーを作成するために「useradd」と「adduser」というコマンドが存在するようですが、CentOSではどちらも同じ働きをするとのこと。
■新規ユーザーのパスワードを作成
|
無視して使用することもできるようですが、セキュリティ上はよろしくないでしょう。
■bibo-rokuで再度ログイン
|
「$」は一般ユーザープロンプト
というのが Linux での決まり事だそうです。
この「bibo-roku」を使用して今後の操作、設定を行っていきます。
■bibo-rokuのログアウト
|
ログアウト シャットダウン リブート [サーバ立ち上げ準備]
■ログアウト画面
|
■シャットダウン
|
「shutdown」コマンドは root (権限を持つ)ユーザーが行うコマンドです。
コマンドには通常本来の動きに対し他の詳細な動作を指定する、オプション という付加コマンドがあるようです。
「shutdown」も同様で、必須の記述は「shutdown」と「時刻」とのこと。
ということは、「-h」がオプションで、意味は「シャットダウン後に電源が落とされる」とのこと。
「now」は「時刻」のことで、「ただちに」を表すとのこと。
つまり、「shutdown -h now」は「ただちにシャットダウンし、電源を落とす」ということになるのでしょう。
オプションを上手に活用することで、多様なシャットダウンを実現できそうです。
■リブート
|
「reboot」コマンドは root (権限を持つ)ユーザーが行うコマンドです。
リブートにはオプションがないようです。「shutdown -r -q now」と同じとのこと。