日次アーカイブ: 2009年01月03日

MRTGをインストールしたり、新しい項目を追加したりしたときに、こんなバナーが出ることがあるかと思います。
mrtg_banner.jpg

MRTGの作者のサイトへリンクが貼られているので、環境によっては「うちのホストが実在することを世間様には隠蔽したい」などの要件があって、このバナーを外したいということもあるでしょう。5分に1回、cronで生成されるページでは、mrtg.cfgで

#  to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
Options[_]: growright, noinfo, nobanner

こんな風に、「nobanner」オプションをつけてあげればOKです。ただし、ロードアベレージやメモリ使用量などの項目には、個別にnobannerオプションが必要になります。

では、indexmakerでインデックス作成するたびに手動でチマチマとバナーを削除すればよい?いいえ、そんな手間かかることしなくてもいいんです。そもそものindexmakerコマンドからバナー生成の部分を削除してやればよいのです。

以下、indexmakerからバナー生成箇所を削除する手順です(MRTG 2.14.5で説明しています)。

[root@ishikari ~]# cp -p /usr/bin/indexmaker /usr/bin/indexmaker.orig
[root@ishikari ~]# vi /usr/bin/indexmaker
522行目から546行目までの、以下の部分を削除する


 
   
   
   
 
    HREF="http://oss.oetiker.ch/mrtg/">    BORDER=0 SRC="${gifPath}mrtg-l.${main::GRAPHFMT}" WIDTH=63 HEIGHT=25 ALT="MRTG">    HREF="http://oss.oetiker.ch/mrtg/">    BORDER=0 SRC="${gifPath}mrtg-m.${main::GRAPHFMT}" WIDTH=25 HEIGHT=25 ALT="">    HREF="http://oss.oetiker.ch/mrtg/">    BORDER=0 SRC="${gifPath}mrtg-r.${main::GRAPHFMT}" WIDTH=388 HEIGHT=25
    ALT="Multi Router Traffic Grapher">


 
 
 


  version $VERSION

  Tobias Oetiker
 
  and Dave Rand 

 

そしてindexmakerを実行します。これで、バナーは出なくなりました。
ね、簡単でしょ?

通常、apacheを何も考えずにインストールすると、preforkで動作します。小規模サイトであればそのままでも構わないのですが、大規模サイトでスレッドによる処理の引渡しが要件に入ってくると、workerで適切なパラメータを投入して動かしたほうがパフォーマンスがよくなります。
※ ただしマシンスペックが低いとあんまり恩恵にあずかれないかも・・・

ちなみに、rpmからインストールしたapacheの動作をpreforkからworkerに変えるのは簡単。
/etc/sysconfig/httpd ファイルの
#HTTPD=/usr/sbin/httpd.worker ← ココのコメントを外し、apacheを再起動するだけ。

しかし問題が1つあって、CentOS付属のPHPはスレッドによる処理の引渡に対応していないので、どノーマルなhttpdとphpをインストールした後にworkerで動作させようとすると、apacheの起動時に以下のようなエラーを吐くのです。。。対処法はココを参考にしました。

$ sudo /etc/init.d/httpd start
Starting httpd: [Fri Jan 02 18:13:43 2009] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
Pre-configuration failed
                                                           [FAILED]

■■ PHPのソースRPM入手とインストール

■ ソースRPMの入手

CentOSのミラーサイトには、大抵SRPMのディレクトリがあります。今回は理研さまのサイトからもってきました。
[oresama@sorachi ~]$ wget http://ftp.riken.jp/Linux/centos/5/os/SRPMS/php-5.1.6-20.el5.src.rpm

■ ソースrpmを展開する
[oresama@sorachi ~]$ rpm -ivh php-5.1.6-20.el5.src.rpm

■ SPECファイルを編集する
[oresama@sorachi ~]$ cd rpm/SPECS/
[oresama@sorachi SPECS]$ cp -p php.spec php.spec.orig
[oresama@sorachi SPECS]$ vi php.spec

ここを
%configure
        --cache-file=../config.cache
・・・

こうする
%configure
        --with-tsm-pthreads
        --enable-maintainer-zts
        --cache-file=../config.cache

tsm-pthreadsとmaintainer-ztsを有効にしてやるってことです。

■ 必要なパッケージをインストールする

その他、configureオプションを意図的に削除しない限りは、最低限以下のパッケージが必要になります。

apr-devel apr-util-devel aspell-devel autoconf automake beecrypt-devel bzip2-devel curl-devel cyrus-sasl-devel db4-devel e2fsprogs-devel elfutils-devel elfutils-devel-static elfutils-libelf-devel elfutils-libelf-devel-static expat-devel fontconfig-devel freetype-devel gcc-c++ gd gd-devel gmp-devel httpd-devel imake keyutils-libs-devel krb5-devel libc-client libc-client-devel libgcrypt-devel libgpg-error-devel libidn-devel libjpeg-devel libpng-devel libselinux-devel libsepol-devel libstdc++-devel libtool libX11-devel libXau-devel libXdmcp-devel libxml2-devel libXpm libXpm-devel libxslt libxslt-devel lm_sensors mesa-libGL-devel mysql mysql-devel ncurses-devel net-snmp net-snmp-devel net-snmp-libs openldap-devel openssl-devel pam-devel pcre-devel perl-DBI pkgconfig postgresql postgresql-devel rpm-devel sqlite-devel unixODBC unixODBC-devel xorg-x11-proto-devel zlib-devel

■ rpmbuildコマンドでビルドする

[oresama@sorachi SPECS]$ rpmbuild -bb php.spec

■ パッケージをインストールする

[oresama@sorachi SPECS]$ cd ../RPMS/i386
[oresama@sorachi i386]$ rpm --test -ivh php-5.1.6-20.i386.rpm php-cli-5.1.6-20.i386.rpm php-common-5.1.6-20.i386.rpm
[oresama@sorachi i386]$ sudo rpm -ivh php-5.1.6-20.i386.rpm php-cli-5.1.6-20.i386.rpm php-common-5.1.6-20.i386.rpm

■ apacheを再起動して反映
[oresama@sorachi i386]$ sudo /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

※ yumでパッケージをアップデートする際に、phpの上書きインストールがされないよう、yum.confでexcludeしましょう。

[oresama@sorachi ~]$ cd /etc/
[oresama@sorachi etc]$ sudo cp -p yum.conf yum.conf.orig
[oresama@sorachi etc]$ sudo vi yum.conf

この行を追加
exclude=php*

あとは、phpのテストページが正常に表示されればOKです。
ね、簡単でしょ?