ServersMan@VPSの初期状態だとCentOS 5.4が起動します。
先日CentOS 5.6がリリースされたのでCentOS 5.4→CentOS 5.6にバージョンアップします。

※注意!!
CentOSのバージョンアップでいきなりyum updateするのはNGです。
きちんとCentOSのリリースノート(CentOS 5.6 リリースノート)を見ましょう。

手順は以下のとおりです。

# yum clean all
# yum update glibc\*
# yum update yum\* rpm\* pyth\*
# yum clean all
# yum update mkinitrd nash
# yum update selinux\*
# yum update
# shutdown -r now

バージョンが新しくなったことを確認しておきます。

●更新前
# cat /etc/redhat-release
CentOS release 5.4 (Final)

●更新後
# cat /etc/redhat-release
CentOS release 5.6 (Final)

OpenSSHをログイン認証にしていると辞書攻撃等でパスワードが判明する確率が高くなってしまいます。
そこで認証方式をログイン認証から公開鍵認証に変更して特定のクライアントからのみログインを許可するように変更します。
大まかな手順は以下のとおり。
・鍵ペアの作成
・ログイン認証の無効化

まずサーバ側で鍵ペアを作成します。
なるべく強度を高くするためRSA(2048bit)で生成します。

$ ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): ********
Enter same passphrase again: ********
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
11:aa:22:bb:33:cc:44:dd:55:ee:66:ff:77:gg:77:hh user@server

.sshディレクトリ配下に鍵が生成されていることを確認します。

$ ls -al .ssh
合計 16
drwx------ 2 user 4096  3月 20 10:14 .
drwx------ 4 user 4096  3月 20 10:22 ..
-rw------- 1 user 1675  3月 20 10:14 id_rsa
-rw-r--r-- 1 user  393  3月 20 10:14 id_rsa.pub

authorized_keysファイルに公開鍵を登録します。

$ cat id_rsa.pub >> authorized_keys

これでサーバ側の準備は終わりです。
次にクライアント側の準備をします。
先ほど生成した鍵ペアのうち秘密鍵をクライアントに安全な方法でコピーします。
Teratermを使う人はコピーした秘密鍵をそのまま使用することができますが、PuttyやWinSCPは秘密鍵を変換が必要です。
Puttyのインストールフォルダにあるputtygen.exe使って秘密鍵の変換をします。
手順は簡単で以下のとおりです。
1.既存の秘密鍵を読み込む
2.秘密鍵の保存

これでPuttyからもアクセスできるようになります。
秘密鍵を指定してSSH接続できればOKです。
パスフレーズを空白にしていればそのまま接続されると思います。

最後にパスワード認証を無効化しておきます。
/etc/ssh/sshd_config

PubkeyAuthentication yes
PasswordAuthentication no

OpenSSHを再起動後の動作確認で問題なければOKです。

# tail /var/log/secure
●公開鍵でのログイン成功のログ
Mar 20 11:13:04 host sshd[38235]: Accepted publickey for user from xxx.xxx.xxx.xxx port 35804 ssh2

●ユーザ認証失敗のログ
Mar 20 02:28:47 host sshd[13766]: Received disconnect from xxx.xxx.xxx.xxx: 14: No supported authentication methods available

MuninでMySQLのデータを取得します。
今回取得するデータは下記のとおり。
<Munin標準>
・MySQL queries
・MySQL slow queries
・MySQL threads
・MySQL throughput

<Munin Exchange>
・MySQL Connections
・MySQL Queries Cache Size
・MySQL Queries in cache

Munin側でPluginを有効にします。

# ln -s /usr/local/munin/lib/plugins/mysql_queries /etc/munin/plugins/mysql_queries
# ln -s /usr/local/munin/lib/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
# ln -s /usr/local/munin/lib/plugins/mysql_threads /etc/munin/plugins/mysql_threads
# ln -s /usr/local/munin/lib/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
# ln -s /usr/local/munin/lib/plugins/mysql_connections /etc/munin/plugins/mysql_connections
# ln -s /usr/local/munin/lib/plugins/mysql_qcache /etc/munin/plugins/mysql_qcache
# ln -s /usr/local/munin/lib/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem

mysqladminのパスとMySQLのアカウント情報を設定します。
/etc/munin/plugin-conf.d/plugins.conf

[mysql*]
env.mysqladmin /usr/local/mysql/bin/mysqladmin
env.mysqlopts -uroot -p********

情報を取得できるか確認します。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_queries
delete.value 7
insert.value 12
replace.value 0
select.value 514
update.value 70
cache_hits.value 372

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_slowqueries
queries.value 0

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_threads
threads.value 1

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_bytes
recv.value 239436
sent.value 4754197

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_connections
current.value 1
available.value 150

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache
queries.value 282

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache_mem
free.value 32690144
used.value 864288

【エラー情報1】
munin-runの実行時に下記のエラーが出た場合はmysqladminのパスが設定されているか確認する。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache_mem
Coult not execute 'mysqladmin  extended-status': Permission denied at /etc/munin/plugins/mysql_qcache_mem line 64.

【エラー情報2】
munin-runの実行時に下記のエラーが出た場合はMySQLのアカウント情報が設定されているか確認する

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache_mem
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

WordPressの高速化のためにMySQLのキャッシュ機能を有効にします。
最初にMySQLでクエリキャッシュが有効かどうかを確認しておきます。
query_cache_sizeが0になっていたら無効になっています。

$ /usr/local/mysql/bin/mysqladmin -uroot -p variables |grep query_cache_size
Enter password: ********
| query_cache_size                  | 0                     |

クエリキャッシュを有効にするために/etc/my.cnfに下記を追加します。
/etc/my.cnf

[mysqld]
(省略)
query_cache_limit = 1M
query_cache_min_res_unit = 4k
query_cache_size = 32M
query_cache_type = 1

MySQLを再起動するとクエリキャッシュが有効になります。
あらためてクエリキャッシュの状況を確認します。
query_cache_sizeの値が増えていればOKです。

# /usr/local/mysql/bin/mysqladmin -uroot -p variable |grep query_cache
Enter password: ********
| have_query_cache                  | YES                   |
| query_cache_limit                 | 1048576               |
| query_cache_min_res_unit          | 4096                  |
| query_cache_size                  | 33554432              |
| query_cache_type                  | ON                    |
| query_cache_wlock_invalidate      | OFF                   |

Serversman@VPSの12月のアップデートでAirDisplayという名目でAjaxtermをインストールされたようです。
Ajaxtermとはブラウザ経由でOSのコンソールを操作できるようにするPythonスクリプトです。
つまりURLさえわかればだれでもログイン画面まではたどり着けてしまう状態になっています。
しかもDTIの設定ミスによりOpenProxyになっていたことも判明。

DTI VPSの大部分がオープンプロキシになっていた件について
http://d.hatena.ne.jp/hirata_yasuyuki/20110101/dti_vps_open_proxy

なかなか余計なものを勝手にインストールしてくれたようです。
どういう状態になっているか確認してみることにします。

プロセスとしてajaxterm.pyが起動しています。
$ ps aux |grep ajax
nobody   18323  0.0  0.8  19832  4456 ?        Sl    2010   0:05 python /usr/local/share/ajaxterm/ajaxterm.py --daemon --port=8022 --uid=nobody

8022/TCPでLISTENしています。
$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 127.0.0.1:8022              0.0.0.0:*                   LISTEN

自動起動するようになっています。
$ /sbin/chkconfig --list |grep ajaxterm
ajaxterm        0:off   1:off   2:on    3:on    4:on    5:on    6:off

つまり、利用者が知らないうちに勝手にアプリをインストールされしかも自動起動するようになっています。
これはひどい。

さらにApacheの設定も改変。
http://aaa.bbb.ccc.ddd/airdisplay/にアクセスするとインターネット側からAjaxtermに接続できるという。
/etc/httpd/conf.d/proxy_ajaxterm.conf

<IfModule mod_proxy.c>
#ProxyRequests On

<Proxy *>
      Order deny,allow
      Deny from all
      Allow from all
</Proxy>
ProxyPass /airdisplay/ http://localhost:8022/
ProxyPassReverse /airdisplay/ http://localhost:8022/

サーバにはSSHで接続できればOKな人はAjaxtermを無効化&アンインストールしてしまいましょう。

# /sbin/service ajaxterm stop
Stopping ajaxterm:                                         [  OK  ]
# /sbin/chkconfig --del ajaxterm
# rm -rf /etc/init.d/ajaxterm
# rm -rf /usr/local/bin/ajaxterm
# rm -rf /usr/local/share/ajaxterm/
# rm -rf /usr/local/share/man/man1/ajaxterm.1.gz
# rm -rf /etc/httpd/conf.d/proxy_ajaxterm.conf

標準のApache(httpd)を使っている人はhttpdのリスタートも忘れずに。

# /sbin/service httpd restart

2010/12/26 22:26HDD 1GB追加

キャンペーンスロット当たりました。
HDD 1GB追加で、11GBになりました。

$ df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/simfs            11534336   2340496   9193840  21% /
none                    262144         4    262140   1% /dev

Muninでlighttpdのデータを取得するのは簡単。
Munin標準のApache関連のPluginを使うことができる。

lighttpdの設定変更。
/etc/lighttpd/modules.conf

##
## mod_status
##
include "conf.d/status.conf"

/etc/lighttpd/conf.d/status.conf

server.modules += ( "mod_status" )
$HTTP["remoteip"] == "127.0.0.0/8" {
  status.status-url          = "/server-status"
  status.config-url          = "/server-config"
  status.statistics-url      = "/server-statistics"
  status.enable-sort         = "enable"
}

lighttpdを再起動すると有効になる。
次のようにデータを取得できていればOK。

# telnet localhost 80
GET /server-status HTTP/1.0

HTTP/1.0 200 OK
Content-Type: text/html
Content-Length: 4956
Connection: close
Date: Thu, 16 Dec 2010 10:41:06 GMT
Server: lighttpd

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>Status</title>

(省略)

Munin側はPluginを有効にするだけ。

# ln -s /usr/local/munin/lib/plugins/apache_accesses /etc/munin/plugins/apache_acceses
# ln -s /usr/local/munin/lib/plugins/apache_processes /etc/munin/plugins/apache_processes
# ln -s /usr/local/munin/lib/plugins/apache_volume /etc/munin/plugins/apache_volume

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_accesses
accesses80.value 5

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_processes
busy80.value 1
idle80.value 127
free80.value 0

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_volume
volume80.value 65536

【エラー情報1】
munin実行時に下記のエラーが出た場合はLWP::UserAgentがないのでperl-LWP-UserAgent-Determined(dag)をインストールする。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_accesses
LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86.

Muninに標準で付属しているloadプラグインは1分平均のデータしか取得できないがMunin Exchengeに登録されているload_extendedプラグインを使えば1分、5分、15分平均のデータが取得できる。

# cd /usr/local/munin/lib/plugins
# wget -O load_extended http://exchange.munin-monitoring.org/plugins/load_extended/version/1/download
# cdmod 755 load_extended
# ln -s /usr/local/munin/lib/plugins/load_extended /etc/munin/plugins/load_extended

プラグインの動作確認。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins load_extended
load1.value 0.04
load5.value 0.05
load15.value 0.00

Muninを再起動してプラグインを有効にする。

# /sbin/service munin restart
# /sbin/service munin restart
Stopping Munin Node agents:                                [  OK  ]
Starting Munin Node:                                       [  OK  ]

サーバの性能を監視するためにmuninを導入する。
様々なデータをグラフ化することができ、しきい値を超えるとアラーとメールを送信するなどが可能。
ServersMan@VPSがどの程度の性能で動いているのか、他のVPSによって性能劣化が生じないのかを見れるかも。

まずはrrdtool-1.4.xを導入する。
下記のパッケージが必要になる。
・cairo
・cairo-devel
・libxml2
・libxml2-devel
・pango
・pango-devel

依存関係のあるパッケージがたくさんあるが気にせずインストールする。

# yum install cairo cairo-devel libxml2 libxml2-devel pango pango-devel

rrdtoolをインストールする。

$ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.4.tar.gz
$ tar xvzf rrdtool-1.4.4.tar.gz
$ cd rrdtool-1.4.4
$ ./configure --prefix=/usr/local/rrdtool --enable-perl-site-install
$ make
# paco -D make install

muninに必要なPerlモジュールをインストールしていく。
・perl-Net-SSLeay (base)
・perl-URI(base)
・perl-MD5 (dag)
・perl-HTML-Template (dag)
・perl-Params-Validate (dag)
・perl-TimeDate (dag)
・perl-Log-Log4perl (dag)
・Time::HiRes (cpan)
・Getopt::Long (cpan)
・Storable (cpan)
・Text::Balanced (cpan)

munin用のユーザを作成する。

# /usr/sbin/groupadd -g 200 munin
# /usr/sbin/useradd -u 200 -g 200 -s /sbin/nologin munin

muninをダウンロードしてインストールする。

$ wget munin
$ tar xvzf xvzf munin-2.0-alpha1.tar.gz
$ cd munin-2.0-alpha1

makeファイルを編集する。
Makefile.config

PREFIX     = $(DESTDIR)/usr/local/munin
CONFDIR    = $(DESTDIR)/etc/munin
HTMLDIR    = /var/www/kaju.jp/htdocs/munin
CGIDIR     = /var/www/kaju.jp/cgi-bin/munin
DBDIR      = $(DESTDIR)/var/lib/munin
LOGDIR     = $(DESTDIR)/var/log/munin

いよいよmuninのインストール。

・Manager
# paco -D make install

・Agent
# paco -D make install-common-prime install-node-prime install-plugins-prime

Managerの設定。
各AgentのIPアドレスを登録していく。
/etc/munin/munin.conf

# a simple host tree
[kaju.jp]
    address 127.0.0.1
    use_node_name yes

Managerは各Agentに接続し情報を収集する。
Manager自体はcronで起動される。
/etc/crontab

*/5 * * * *     munin test -x /usr/local/munin/bin/munin-cron && /usr/local/munin/bin/munin-cron

ログにエラーが出ていないことを確認しておく。

Nov  7 05:00:01 bruna crond[28611]: (munin) CMD (test -x /usr/local/munin/bin/munin-cron && /usr/local/munin/bin/munin-cron)

引き続きAgentの設定をする。
ManagerとAgentが同一サーバなのでAgentはlocalhostとのみでLISTENするようにしておく。
/etc/munin/munin-node.conf

# Set this if the client doesn't report the correct hostname when
# telnetting to localhost, port 4949
#
host_name kaju.jp

# Which address to bind to;
#host *
host 127.0.0.1

Agentの起動スクリプトをテンプレートからコピーする。

# cp dists/redhat/munin-node.rc /etc/rc.d/init.d/munin
# /sbin/chkconfig --add munin
# /sbin/chkconfig --list munin
munin           0:off   1:off   2:on    3:on    4:on    5:on    6:off

# /sbin/service munin start
Starting Munin Node:                                       [  OK  ]

起動確認。

# ps aux |grep munin
root     11713  0.0  1.1   9144  5948 ?        Ss   18:10   0:00 /usr/local/munin/sbin/munin-node

# netstat -an |less
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 127.0.0.1:4949              0.0.0.0:*                   LISTEN

# cat /var/log/munin/munin-node.log
Process Backgrounded
2010/09/15-18:10:54 Munin::Node::Server (type Net::Server::Fork) starting! pid(11713)
Using default listen value of 128
Binding to TCP port 4949 on host 127.0.0.1
Setting gid to "0 0"

muninで監視したいプラグインを有効にする。

・自動
# /usr/local/munin/sbin/munin-node-configure --shell --families=auto,contrib |sh -x

・手動
# ln -s /usr/local/munin/lib/plugins/cpu /etc/munin/plugins/cpu

プラグインの動作確認。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins cpu
user.value 53160
nice.value 0
system.value 8722
idle.value 76199051
iowait.value 3178
irq.value 0
softirq.value 0
steal.value 0

これでmuninが動作しサーバのデータ収集を開始する。
念のため各種ログでエラーが出ていないことを確認しておく。

# cat /var/log/munin/munin-update.log
2010/09/15 18:55:01 Opened log file
2010/09/15 18:55:01 [INFO]: Starting munin-update
2010/09/15 18:55:11 [INFO] Reaping Munin::Master::UpdateWorker<jp;kaju.jp>.  Exit value/signal: 18/0
2010/09/15 18:55:11 [INFO]: Munin-update finished (10.13 sec)

# cat /var/log/munin/munin-html.log
2010/09/16 10:00:07 Opened log file
2010/09/16 10:00:07 [INFO] Starting munin-html, getting lock /var/run/munin/munin-html.lock
2010/09/16 10:00:07 [INFO] Process 44313 is dead, stealing lock, removing file
2010/09/16 10:00:07 [INFO] Releasing lock file /var/run/munin/munin-html.lock
2010/09/16 10:00:07 [INFO] munin-html finished (0.40 sec)

# cat /var/log/munin/munin-graph.log
2010/09/16 10:00:00 Opened log file
2010/09/16 10:00:00 Starting munin-graph
2010/09/16 10:00:00 Munin-graph finished (0.08 sec)
2010/09/16 10:00:04 Graphed service : if_err_venet0 (3.58 sec for 4 graphs)

# cat /var/log/munin/munin-limits.log
2010/09/15 18:55:12 Opened log file
2010/09/15 18:55:12 [INFO] Starting munin-limits, getting lock /var/run/munin/munin-limits.lock
2010/09/15 18:55:12 [INFO] munin-limits finished (0.00 sec)

あとはブラウザで出力先に指定したディレクトリにアクセスすればOK。

【エラー情報1】
Agent起動時に下記のエラーが出た場合はmunin-node.confのhost_nameを設定する。

# tail /var/log/munin/munin-node.log
Use of uninitialized value in scalar assignment at /usr/lib/perl5/site_perl/5.8.8/Munin/Node/Service.pm line 74.

【エラー情報2】
munin-cron起動時に下記のエラーが出た場合はURI.pmがないのでperl-URIをインストールする。

Can't locate URI.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Node.pm line 63.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Node.pm line 63.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 17.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
Compilation failed in require at /usr/local/munin/lib/munin-update line 13.
BEGIN failed--compilation aborted at /usr/local/munin/lib/munin-update line 13.

【エラー情報3】
munin-cron起動時に下記のエラーが出た場合はRRDs.pmがないのでRRDToolのconfigureオプションに–enable-perl-site-installを付ける。

Can't locate RRDs.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Utils.pm line 22.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Utils.pm line 22.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 18.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 18.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
Compilation failed in require at /usr/local/munin/lib/munin-update line 13.
BEGIN failed--compilation aborted at /usr/local/munin/lib/munin-update line 13.

lighttpd用のユーザとグループを作成する。

# /usr/sbin/groupadd -g 201 lighttpd
# /usr/sbin/useradd -u 201 -g 201 -s /sbin/nologin lighttpd

lighttpdのコンパイル&インストール。
/usr/local/lighttpdにインストールする。

$ wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.bz2
$ tar xvjf lighttpd-1.4.28.tar.bz2
$ cd lighttpd-1.4.28
$ ./configure --prefix=/usr/local/lighttpd
$ make
# paco -D make install

lighttpdの設定ファイルをテンプレートからコピーして編集する。

# cp doc/config/lighttpd.conf /etc/lighttpd/
# cp doc/config/modules.conf /etc/lighttpd/
# cp -R doc/config/conf.d /etc/lighttpd/
# cp -R doc/config/vhosts.d /etc/lighttpd/

/etc/lighttpd/lighttpd.conf



設定ファイルをテストする。

# /usr/local/lighttpd/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf
Syntax OK

ログファイルの保存先ディレクトリを作成。

# mkdir /var/log/lighttpd
# chown -R lighttpd:lighttpd /var/log/lighttpd/

起動スクリプトをテンプレートからコピーする。

# cp doc/initscripts/rc.lighttpd.redhat /etc/rc.d/init.d/lighttpd
# /sbin/chkconfig --add lighttpd
# /sbin/chkconfig lighttpd on
# /sbin/chkconfig --list |grep lighttpd
lighttpd        0:off   1:off   2:on    3:on    4:on    5:on    6:off

起動スクリプト内のPATHを変更しておく。
/etc/rc.d/init.d/lighttpd

lighttpd="/usr/local/lighttpd/sbin/lighttpd"

起動確認。

# /sbin/service lighttpd start
Starting lighttpd:                                         [  OK  ]

# ps uax |grep light
lighttpd 59340  0.0  0.1   2380   956 ?        S    15:55   0:00 /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

# netstat -an |grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN

# cat /var/log/lighttpd/error.log
2010-09-17 15:55:37: (log.c.166) server started

ブラウザでアクセスしてみて表示されれば成功。

【エラー情報1】
configureで下記のエラーが出た場合はpcre-develがないのでインストールしておく。

configure: error: pcre-config not found, install the pcre-devel package or build with --without-pcre

【エラー情報2】
configureで下記のエラーが出た場合はbzip2-develがないのでインストールしておく。

configure: error: bzip2-headers and/or libs where not found, install them or build with --without-bzip2

【エラー情報3】
起動時に下記のエラーが出た場合はDocument Directoryが存在していないため作成しておく。

# /sbin/service lighttpd start
Starting lighttpd: 2010-09-17 15:49:24: (configfile.c.1214) base-docroot doesn't exist: /srv/www/htdocs
2010-09-17 15:49:24: (server.c.620) setting default values failed
                                                           [FAILED]

【エラー情報4】
起動時に下記のエラーが出た場合はLog Directoryが存在していないため作成しておく。

# /sbin/service lighttpd start
Starting lighttpd: 2010-09-17 15:50:51: (log.c.118) opening errorlog '/var/log/lighttpd/error.log' failed: No such file or directory
                                                           [  OK  ]

【エラー情報5】
起動時に下記のエラーが出た場合はIPv6関連で問題が生じているためlighttpd.confで該当エントリをコメントアウトしておく。

# /sbin/service lighttpd start
Starting lighttpd: 2010-09-17 15:50:51: (network.c.239) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address; your config will break if the kernel default for IPV6_V6ONLY changes
                                                           [  OK  ]

© 2003-2014 うーたんの小部屋 | Powered by Wordpress