半人前技術者の成長記

挫折と妄想を膨らませながら成長するだろう技術者の日記

Linux

Apache killer対応版のインストール

投稿日:

今のところ被害は受けていないが、Apache killerの対応したバージョンにアップした方が
安全なのでアップデートを行ったときの作業手順です。

今回、rpmパッケージが出ていないと思いrpmパッケージを自作することから調べ、
途中で起動スクリプト(/etc/init.d配下)ではプロセスファイルが無いために
起動はできるが停止ができないというトラブルに合った。
しかし、調べてみるとapache killerに対応したrpmがリリースされているいうことで
yumからアップデートを行い、事なきを得た。

方法論としては、2通り、1つ目は簡単なyum updateで対応済みのrpmパッケージをインストールする方法、
2つ目はrpmbuildを使ってtar.gzからrpmパッケージをインストールする方法になります。

■yum
この方法はとっても簡単で下記の通りで終わりです。

# yum update httpd

設定ファイルが差し変わるのでバックアップを取るか、通常/etc/httpd/confと/etc/httpd/conf.dに新しいファイルが
作成されているので元のファイルに戻す。

■rpmbuild
まず、apache httpdのtar.gzをダウンロードする。
次にrpmbuildコマンドでrpmを作成する。

# rpmbuild -ta httpd-2.2.21.tar.gz

これを行った時にライブラリが足りないというエラーが出て、作成が止まる。

エラー: ビルド依存性の失敗:
apr-devel は httpd-2.2.21-1.i386 に必要とされています
apr-util-devel は httpd-2.2.21-1.i386 に必要とされています
openldap-devel は httpd-2.2.21-1.i386 に必要とされています
db4-devel は httpd-2.2.21-1.i386 に必要とされています
expat-devel は httpd-2.2.21-1.i386 に必要とされています
pcre-devel >= 5.0 は httpd-2.2.21-1.i386 に必要とされています
/usr/bin/apr-1-config は httpd-2.2.21-1.i386 に必要とされています
/usr/bin/apu-1-config は httpd-2.2.21-1.i386 に必要とされています
openssl-devel は httpd-2.2.21-1.i386 に必要とされています

なので、次に必要なライブラリをインストールします。

# yum install apr-devel apr-util-devel openldap-devel db4-devel expat-devel pcre-devel distcache-devel –enablerepo=remi –enablerepo=epel –enablerepo=rpmforge

再度、rpmbuildを行うとmakeなどが走って、
完了後、/usr/src/redhat/RPMS/rpmsに4つのファイルが作成されます。

  • httpd-2.2.21-1.i386.rpm
  • httpd-devel-2.2.21-1.i386.rpm
  • httpd-manual-2.2.21-1.i386.rpm
  • mod_ssl-2.2.21-1.i386.rpm

次に、作成されたrpmパッケージをrpmコマンドを使ってインストールします。

# rpm -iUvh httpd-2.2.21-1.i386.rpm mod_ssl-2.2.21-1.i386.rpm httpd-manual-2.2.21-1.i386.rpm httpd-devel-2.2.21-1.i386.rpm
エラー: 依存性の欠如:
apr >= 1.4.2 は httpd-2.2.21-1.i386 に必要とされています
apr-util >= 1.3.10 は httpd-2.2.21-1.i386 に必要とされています
apr-devel >= 1.4.2 は httpd-devel-2.2.21-1.i386 に必要とされています
apr-util-devel >= 1.3.10 は httpd-devel-2.2.21-1.i386 に必要とされています
libtool は httpd-devel-2.2.21-1.i386 に必要とされています

また、ここでライブラリの依存でエラーになりました。
ビルドが出来ているので恐らく大丈夫だろう(普通はダメだよね)と思い、
強制インストールすることにしました。

# rpm -iUvh httpd-2.2.21-1.i386.rpm mod_ssl-2.2.21-1.i386.rpm httpd-manual-2.2.21-1.i386.rpm httpd-devel-2.2.21-1.i386.rpm –force –nodepes

その後は、/etc/init.dにある起動スクリプトが停止ができないこと以外は特に問題が無かったが、
起動スクリプトが使えないのも困るというか、面倒なのでリポジトリのapacheに入れ直しました。

<参考サイト>
Apache 2.2.21 をrpmbuildしようとして失敗したことについて
Apacheセキュリティホール対策アップデート yum対応可能

pc

pc

-Linux
-, , , ,

執筆者:

関連記事

no image

rsyslogでログをリモートサーバに送信

クラウドや仮想環境を使ってWebサーバの複数台構成が当たり前になっています。 複数台構成になると各サーバ毎に保存されているログをわざわざ各サーバにログインして確認するのは面倒です。 また、クラウドなど …

no image

mackerel(マカレル)のプラグイン追加

Saas型のサーバの負荷、死活監視サービスのmackerel(以下、マカレル)の公式プラグインをインストール手順です。 追加したプラグインは、以下の点になります。 1.Apache 2.MySQL プ …

no image

アクセスログからIPアドレスを抽出するコマンド

ApacheのアクセスログからIPアドレス部分のみを抜き出し、 重複したIPアドレスが何件あるのか、表示してくれるコマンド。 【コマンド】 cat /var/log/httpd/access_log …

no image

ランダム文字列をコマンドラインで生成

デフォルトだとCakePHPは、アラートを出すので、当たり前だけど。 CakePHPのSecurity.saltとchipseedを変更する際に便利なコマンド。 # 英数40桁 cat /dev/ur …

no image

直下で使われているディスク容量を出す方法

duは、ディレクトリ内のファイル容量を表示するLinuxコマンドです。 -kオプションを使うと指定ディレクトリ以降のディレクトリの容量を出力されるが、大量のファイルやディレクトリがある場合に行数が多く …

右上部広告