SSL のインストールは初めてなので、
いろいろ調べながらインストールしてみる。

サーバーはさくらのVPS
OS は CentOS 5.5。

 

どこの SSL を利用するか

SSL 証明書は個人的に RapidSSL 一択でした。
SSL 証明書が2000円台って安過ぎ。

以下、参考に他社の値段。

ベリサイン : 85,050円(1年)
セキュア・サーバID|製品について|日本ベリサイン

ジオトラスト : 36,540円(1年)
SSL電子証明書 ジオトラスト(GeoTrust) – ジオトラスト クイックSSL プレミアム

RapidSSL は、
僕が調べた限りでは評判もそこそこ良いし、
日本の携帯電話への対応も良いらしい。

安くて評判も良ければ、
使わない手はないよね。

 

SSL 証明書の購入

国内外にいろいろ代理店があるっぽくて、
日本の会社で、日本語で、そこそこのデザイン(ここ大事)で、
画面の遷移が重くない Rapid-SSL.jp で購入することにしました。

SSL証明書 RapidSSL 2600円 ワイルドカード 18000円 (RapidSSL Strategic Partner)

 

SSL 証明書のインストール

下記サイトを参考に SSL 認証書のインストールを進めていきます。

 

まず、mod_ssl のインストール。

# yum -y install mod_ssl

次に秘密鍵を生成する。
RapidSSL の認証書が 2048bit なので 2048 を指定すること。

# cd /etc/pki/tls/certs/
# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
...........................................+++
...+++
e is 65537 (0x10001)
Enter pass phrase for server.key: (←パスフレーズを入力)
Verifying - Enter pass phrase for server.key: (←パスフレーズを再入力)

次に秘密鍵から CSR を生成する。

# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: (←パスフレーズを入力)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP (←国名を入力)
State or Province Name (full name) [Berkshire]:Aichi (←都道府県を入力)
Locality Name (eg, city) [Newbury]:Nagoya (←市区町村を入力)
Organization Name (eg, company) [My Company Ltd]:Company Name (←会社、団体名を入力)
Organizational Unit Name (eg, section) []: (←空エンター)
Common Name (eg, your name or your server's hostname) []:www.example.com (←ドメイン名を入力)
Email Address []:webmaster@example.com (←メールアドレスを入力)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (←空エンター)
An optional company name []: (←空エンター)

CSR の内容を確認。

# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
(英数字の羅列)
-----END CERTIFICATE REQUEST-----

CSR を Rapid-SSL.jp に送信して、証明書発行を申し込む。
CSR 生成時に入力した情報を Rapid-SSL.jp でも入力すること。

メール認証後、SSL サーバー証明書がメールで送られてくるので、
サーバーに設置する。

# vi server.crt
(SSL サーバー証明書をコピペする)

このままだと Apache を起動するたび(?)にパスフレーズを聞かれるので、
パスフレーズ応答を削除する。

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (←パスフレーズを入力)
writing RSA key

ssl.conf を編集する。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
DocumentRoot "/var/www/html"
ServerName www.example.com:443

バーチャルホストの設定を変更する。
(バーチャルホストを構築している場合)

# vi /etc/httpd/conf.d/ssl.conf
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

# 以下の設定を追加
    
      RewriteEngine On
      RewriteLog "logs/rewrite_log"
      RewriteLogLevel 0
      RewriteCond %{HTTP_HOST} !example.com$ ←SSLのホスト名
      RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
    

Apache を再起動する。

# /etc/rc.d/init.d/httpd restart

ここまでで https にアクセスしてみるけど、
「接続の安全性を確認できません」(Firefox)って言われる。

20110407_001

 

どうやら「中間証明書」ってのをサーバーに入れないといけないらしい。
そういえばメールで送られてきてたので、
「中間証明書」とやらをサーバーに設置する。

「中間証明書」ファイルを新規作成して、
メールで送られてきた内容をコピペする。

# vi /etc/pki/tls/certs/rapidssl-chain.crt
-----BEGIN CERTIFICATE-----
(英数字の羅列)
-----END CERTIFICATE-----

ssl.conf を編集して「中間証明書」を読み込む。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateChainFile /etc/pki/tls/certs/rapidssl-chain.crt

そして、Apache を再起動。

# /etc/rc.d/init.d/httpd restart

 

これで、Firefox に怒られなくなりました。

以上。

さくらのVPS(CentOS 5.5)に ruby のソースから RPM パッケージを作ってインストールするまでのメモ。

yum だと ruby 1.8.5 がインストールされるんだけど、
それだとちょっと不都合があるので、
1.8.7(1.8系の最新)をインストールする。

# yum -y install ruby
# ruby -v
ruby 1.8.5 (2006-08-25) [x86_64-linux]

 

ruby をアンインストール

yum で ruby をインストールしちゃったので、
まずはアンインストール。

# yum -y remove ruby

 

rpm-build と checkinstall のインストール

rpm-build は始めから入ってた。

# yum list installed | grep rpm-build
rpm-build.x86_64                          4.4.2.3-20.el5_5.1           installed

checkinstall は yum でインストール出来ないっぽい。

# yum search checkinstall
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.nara.wide.ad.jp
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: www.ftp.ne.jp
addons                                               |  951 B     00:00
base                                                   | 2.1 kB     00:00
extras                                                 | 2.1 kB     00:00
updates                                              | 1.9 kB     00:00
Warning: No matches found for: checkinstall
No Matches found

仕方がないのでソースからインストールする。

checkinstall の最新バージョンは下記参照。
Index of /~izto/checkinstall/files/source

# wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
# tar zxf checkinstall-1.6.2.tar.gz
# cd checkinstall-1.6.2
# make
# make install
# cd
# rm -rf checkinstall-1.6.2*

 

ruby のダウンロードと rpm パッケージの作成、インストール

ちなみに passenger を利用する場合、
zlib-devel や openssl-devel が必要になるんだけど、
後から zlib-devel 等を入れると ruby から zlib が扱えないって怒られるので、
RPM パッケージを作る前にインストールしておくと良さげ。

後からでも追加できるんだけど、めんどくさそうでした。

# yum -y install zlib-devel openssl-devel

 

ruby 1.8.7 をダウンロードする。

ruby の最新バージョンは下記参照。
オブジェクト指向スクリプト言語 Ruby

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p334.tar.gz

展開して、configure して、make して、RPM パッケージを作る。

# tar zxf ruby-1.8.7-p334.tar.gz
# cd ruby-1.8.7-p334
# ./configure --prefix=/usr
# make
# checkinstall --fstrans=no

いろいろ聞かれるけど、
適当に答えれば RPM パッケージの完成。

そして、不要なファイルの削除。

# cd
# rm -rf ruby-1.8.7-p334*

そして、ruby のインストール。

# rpm -Uvh /usr/src/redhat/RPMS/x86_64/ruby-1.8.7-p334-1.x86_64.rpm
# ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux]

そしてついでに、rubygems もインストール。

rubygems の最新バージョンは下記参照。
RubyForge: RubyGems: Project Info

# wget http://rubyforge.org/frs/download.php/74586/rubygems-1.7.1.tgz
# tar zxf rubygems-1.7.1.tgz
# cd rubygems-1.7.1
# ruby setup.rb
# cd
# rm -rf rubygems-1.7.1*
# gem -v
1.7.1

 

以上。

NEC のサーバーを新しく買いまして、
今まで使っていた DELL のサーバーからブログのデータを移す際に、
WordPress の高速化を試してみました。

 

APC のインストール

APC っていうのは Alternative PHP Cache の略で、
PHP の実行コードをキャッシュする仕組みらしい。

PHP: 導入 – Manual

WordPress は APC を利用するようにできてるらしい。
知らなかった……。

結構効果があるらしいので、
早速インストールしてみる。

# yum --enablerepo=utterramblings -y install php-apc

上記は Utter Ramblings リポジトリを使ってる場合。

標準リポジトリの場合は、

# yum  -y install php-apc

で、インストールできるはず。
ついでに php-pear もインストールされた。

# yum list installed | grep php-apc
php-apc.i386        3.1.6-1.jason.1        installed
# yum list installed | grep php-pear
php-pear.noarch        1:1.9.1-1.jason.1        installed

 

WP Super Cache のインストール

WordPress の記事をキャッシュするプラグインらしい。
似た名前で WP-Cache ってのもあるんだけど、
どっちの方がいいんだろ……?

とりあえず今回は WP Super Cache をインストールしました。

WordPress › WP Super Cache « WordPress Plugins

 

WP Super Cache のインストールは簡単でした。

  1. プラグインをアップロード(管理画面から新規追加でも可)
  2. WP Super Cache を有効化
  3. WP Super Cache の設定画面へ移動
  4. 画面の指示通り wp-content のパーミッションを 777 に変更
  5. 画面の指示通り WP Super Cache の設定画面を再読み込み
  6. 画面の指示通り wp-config.php に define(‘WP_CACHE’, true); を追加
    (define(‘WP_DEBUG’, false); の下あたり)
  7. wp-config.php をアップロード
  8. WP Super Cache の設定画面を再読み込み
  9. wp-content のパーミッションを戻す(755 かな?)
  10. 「Caching On (Recommended) 」を選択して「ステータスを更新」をクリック
  11. Test Cache をクリックしてキャッシュの動作を確認

以上です。

なんかいろいろ細かく設定できるみたいだけど、
デフォルトの設定でいいよね……?

 

表示速度のチェック

表示速度は下記の Web サービスでチェックしました。
簡単そうだったんで。

WebWait – Benchmark Your Website

 

結果

20110207_001

左上から、

  • 旧サーバー
  • 新サーバー
  • 新サーバー + php-apc
  • 新サーバー + php-apc + WP Super Cache

の5秒毎に5回表示した時の平均表示速度です。

 

無事、表示速度が 2.5 倍になりました。

めでたし、めでたし。

基本はさくらのVPSでsinatraを動かすまでのメモと同じだけど、
違うところだけメモしておく。

契約したのは下記のプラン。

ServersMan@VPS|仮想専用サーバ|月額490円~、初期&2ヶ月完全無料

プラン:ServersMan@VPS Entryプラン
OS:CentOS 5.5

 

初期設定

ちなみに、

  • yum-updatesdはインストールされてなかった
  • yum-fastestmirrorは始めから入ってた
  • SELinuxは始めから無効になってる

 

SSHとAirDisplay@VPS

SSHのポート変更は「さくらのVPSでsinatraを動かすまでのメモ」を参照。

AirDisplay@VPSってのはServersManのブラウザからコンソール操作をする機能。
SSHのポート番号を変更するときは、AirDisplayのポート番号も合わせて変えないとAirDisplayが動作しません。

下記を参考にAirDisplayのポート番号を変更。

ServersManマニュアル | マニュアル | ServersMan@VPS仮想専用サーバーサービス :ユビキタスプロバイダ DTI

# vi /usr/local/share/ajaxterm/ajaxterm.py
# 403行目付近のポート番号を好きな番号に変更
#cmd+=['-p4834']
cmd+=['-p****']

そして、ajaxtermを再起動。

# /etc/rc.d/init.d/ajaxterm restart

AirDisplayはhttpでもhttpsでもアクセスできるけど、
httpsのほうがセキュアで良いよね。

  • https://IPアドレス/airdisplay/
  • http://IPアドレス/airdisplay/

ちなみに、対応ブラウザがIE6以上らしい。
自分が確認したところでは、
Firefox 3.6では動作せず、
Safari 5では動作しました。
(FirefoxはFirebugが邪魔してたのかも。確証はないけど。)

AirDisplayはAjaxTermってのを使ってみるみたい。

Index of /software/ajaxterm

 

ファイアウォール構築

これも基本的には「さくらのVPSでsinatraを動かすまでのメモ」の通り。

一部モジュールがServersMan@VPS(OpenVZ)では使えないらしいので、
一部をコメントアウト&修正。

#LAN=eth0 → コメントアウト

# 内部ネットワークのネットマスク取得 → コメントアウト
#LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d`

# 内部ネットワークアドレス取得 → コメントアウト
#LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '`
#LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK

# 上記の代わりに、内部ネットワーク情報を追加
LOCALNET_ADDR=127.0.0.1
LOCALNET_MASK=255.255.255.255
LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK

# SYN Cookiesを有効にする → コメントアウト
# ※TCP SYN Flood攻撃対策
#sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
#sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
#echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# ブロードキャストアドレス宛pingには応答しない → コメントアウト
# ※Smurf攻撃対策
#sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
#sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
#echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

# ACCEPT_COUNTRY_MAKE関数定義 → コメントアウト
# 指定された国のIPアドレスからのアクセスを許可するユーザ定義チェイン作成
#ACCEPT_COUNTRY_MAKE(){
# for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
# do
# iptables -A ACCEPT_COUNTRY -s $addr -j ACCEPT
# done
#}

# DROP_COUNTRY_MAKE関数定義 → コメントアウト
# 指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
#DROP_COUNTRY_MAKE(){
# for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
# do
# iptables -A DROP_COUNTRY -s $addr -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES DENY_COUNTRY] : '
# iptables -A DROP_COUNTRY -s $addr -j DROP
# done
#}

# IPアドレスリスト取得 → コメントアウト
#. /root/iptables_functions
#IPLISTGET

# 日本からのアクセスを許可するユーザ定義チェインACCEPT_COUNTRY作成 → コメントアウト
#iptables -N ACCEPT_COUNTRY
#ACCEPT_COUNTRY_MAKE JP

# 中国・韓国・台湾※からのアクセスをログを記録して破棄 → コメントアウト
# ※全国警察施設への攻撃元上位3カ国(日本・アメリカを除く)
# http://www.cyberpolice.go.jp/detect/observation.htmlより
#iptables -N DROP_COUNTRY
#DROP_COUNTRY_MAKE CN
#DROP_COUNTRY_MAKE KR
#DROP_COUNTRY_MAKE TW
#iptables -A INPUT -j DROP_COUNTRY

 

NTPサーバー構築

ServersManのサポートに問い合わせたら、
時刻同期は自動で行われるとのことなので、
NTPは必要なし。

 

chrootユーザー作成スクリプト

ServersMan@VPSはx64環境じゃないっぽいので、
参考のスクリプトのままでOK。

SSHサーバー構築(OpenSSH) – CentOSで自宅サーバー構築

 

不要なデーモンとコンソールの停止

# chkconfig gpm off
# chkconfig lvm2-monitor off
# chkconfig mcstrans off
# /etc/rc.d/init.d/mcstrans stop
# chkconfig messagebus off
# chkconfig netfs off
# /etc/rc.d/init.d/netfs stop
# chkconfig portmap off
# chkconfig rawdevices off
# /etc/rc.d/init.d/rawdevices stop

 

以上。

NEC のサーバーを買ったので、
ベンチマークしてみました。

ついでに VPS とか Mac のベンチマークもしてみました。

参考 : Linuxでベンチマーク – superπ/姫野ベンチ編 | データセンターの専用サーバ データセンターダイレクト ブログ
 

確認したマシンたち

CPU とメモリは cpuinfo とmeminfo で調べました。

CentOS の場合

# cat /proc/cpuinfo ← CPUの情報を表示
# cat /proc/meminfo ← メモリの情報を表示

Mac の場合

$ sysctl -a | grep cpu ← CPUの情報を表示
$ sysctl -a | grep mem ← メモリの情報を表示

以下、確認したマシンのスペック。

 

NEC Express5800/S70 タイプRB

CPU : Intel(R) Pentium(R) CPU G6950 @ 2.80GHz
メモリ : 6GB(2GB + 2GB + 1GB + 1GB)
参考 : 仕様:S70 タイプRB | NEC

 

Dell PowerEdge 430

CPU : Intel(R) Pentium(R) D CPU 2.80GHz
メモリ : 1GB(512MB + 512MB)
参考 : PowerEdge SC430 製品詳細 | Dell 日本

 

MacBook (Late 2007)

CPU : Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz
メモリ : 4GB(2GB + 2GB)
参考 : MacBook (Late 2007) – Technical Specifications

 

さくらのVPS

CPU : Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
メモリ : 512MB
参考 : さくらのVPS|VPS(仮想専用サーバ)はさくらインターネット

 

ServersMan@VPS(Entryプラン)

CPU : Intel(R) Xeon(R) CPU L5520 @ 2.27GHz
メモリ : 768MB
参考 : ServersMan@VPS|仮想専用サーバ|月額490円~、初期&2ヶ月完全無料

 

superπでベンチマークする方法

下記からsupperπをダウンロードして、
解凍して、実行するだけ。

ftp://pi.super-computing.org/ の一覧

# mkdir supper_pi
# cd supper_pi
# wget ftp://pi.super-computing.org/Linux_jp/super_pi-jp.tar.gz
# tar zxvf super_pi-jp.tar.gz
# ./supper_pi
 Version 2.0 of the super_pi for Linux OS
 Fortran source program was translated into C program with version 19981204 of
 f2c, then generated C source program was optimized manually.
 pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
 compilation.
 ------ Started super_pi run : 2011年 2月 1日 火曜日 20:56:51 JST
 Parameter(%i) to super_pi is missing. Parameter value ? 20 ← 20 を入力(20 = 104 万桁)

 

姫野ベンチでベンチマークする方法

下記から C, static allocate version の M をダウンロードして、
解凍して、リネームして、make して、実行する。
(なんでリネームするんだろ……。)

ダウンロード (ソース & 実行形式(Win/Mac 用))|HPC High Performance Computing|ACCC. RIKEN

# mkdir himeno
# cd himeno
# wget http://accc.riken.jp/assets/files/himenob_loadmodule/cc_himenoBMTxp_m.lzh
# lha e cc_himenoBMTxp_m.lzh
# mv himenobmtxps.c himenoBMTxps.c
# make
# ./bmt

lha(lzhを解凍するコマンド)がない場合は、
yum か rpm でインストールする。

yum の場合。

# yum search lha
# yum -y install lha
# whereis lha
lha: /usr/bin/lha

rpm の場合。
下記から合ったものをダウンロードしてインストール。

Index of /lha

# wget http://packages.sw.be/lha/lha-1.14i-19.2.2.el5.rf.i386.rpm
# rpm -ivh lha-1.14i-19.2.2.el5.rf.i386.rpm
# whereis lha
lha: /usr/bin/lha

 

supperπの結果

NEC Express5800/S70 タイプRB

 Version 2.0 of the super_pi for Linux OS
 Fortran source program was translated into C program with version 19981204 of
 f2c, then generated C source program was optimized manually.
 pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
 compilation.
 ------ Started super_pi run : 2011年 2月 1日 火曜日 20:56:51 JST
 Parameter(%i) to super_pi is missing. Parameter value ? 20
 Start of PI calculation up to 1048576 decimal digits
 End of initialization. Time=       0.204 Sec.
 I= 1 L=       0        Time=       0.588 Sec.
 I= 2 L=       0        Time=       0.674 Sec.
 I= 3 L=       1        Time=       0.674 Sec.
 I= 4 L=       2        Time=       0.676 Sec.
 I= 5 L=       5        Time=       0.675 Sec.
 I= 6 L=      10        Time=       0.674 Sec.
 I= 7 L=      21        Time=       0.675 Sec.
 I= 8 L=      43        Time=       0.675 Sec.
 I= 9 L=      87        Time=       0.675 Sec.
 I=10 L=     174        Time=       0.675 Sec.
 I=11 L=     349        Time=       0.675 Sec.
 I=12 L=     698        Time=       0.674 Sec.
 I=13 L=    1396        Time=       0.675 Sec.
 I=14 L=    2794        Time=       0.671 Sec.
 I=15 L=    5588        Time=       0.670 Sec.
 I=16 L=   11176        Time=       0.666 Sec.
 I=17 L=   22353        Time=       0.655 Sec.
 I=18 L=   44707        Time=       0.634 Sec.
 I=19 L=   89415        Time=       0.590 Sec.
 End of main loop
 End of calculation.    Time=      13.291 Sec.
 End of data output.    Time=       0.067 Sec.
 Total calculation(I/O) time=      13.358(       0.558) Sec.
 ------ Ended super_pi run : 2011年 2月 1日 火曜日 20:57:06 JST

Dell PowerEdge 430

 Version 2.0 of the super_pi for Linux OS
 Fortran source program was translated into C program with version 19981204 of
 f2c, then generated C source program was optimized manually.
 pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
 compilation.
 ------ Started super_pi run : 2011年 2月 1日 火曜日 20:17:58 JST
 Parameter(%i) to super_pi is missing. Parameter value ? 20
 Start of PI calculation up to 1048576 decimal digits
 End of initialization. Time=       0.452 Sec.
 I= 1 L=       0        Time=       1.358 Sec.
 I= 2 L=       0        Time=       1.543 Sec.
 I= 3 L=       1        Time=       1.539 Sec.
 I= 4 L=       2        Time=       1.557 Sec.
 I= 5 L=       5        Time=       1.546 Sec.
 I= 6 L=      10        Time=       1.538 Sec.
 I= 7 L=      21        Time=       1.537 Sec.
 I= 8 L=      43        Time=       1.536 Sec.
 I= 9 L=      87        Time=       1.536 Sec.
 I=10 L=     174        Time=       1.554 Sec.
 I=11 L=     349        Time=       1.541 Sec.
 I=12 L=     698        Time=       1.538 Sec.
 I=13 L=    1396        Time=       1.545 Sec.
 I=14 L=    2794        Time=       1.539 Sec.
 I=15 L=    5588        Time=       1.533 Sec.
 I=16 L=   11176        Time=       1.522 Sec.
 I=17 L=   22353        Time=       1.497 Sec.
 I=18 L=   44707        Time=       1.437 Sec.
 I=19 L=   89415        Time=       1.339 Sec.
 End of main loop
 End of calculation.    Time=      30.382 Sec.
 End of data output.    Time=       0.197 Sec.
 Total calculation(I/O) time=      30.579(       1.017) Sec.
 ------ Ended super_pi run : 2011年 2月 1日 火曜日 20:18:30 JST

MacBook (Late 2007)

 Version 2.0 of the super_pi for Mac OS/X
 Fortran source program was translated into C program with version 19981204 of
 f2c, then generated C source program was optimized manually.
 gcc-3.2.2 with compile option of "-O3 -ffast-math -finline-limit=1000" was used
 for the compilation.
 ------ Started super_pi run : 2011年 2月 1日 火曜日 19時35分52秒 JST
 Parameter(%i) to super_pi is missing. Parameter value ? 20
 Start of PI calculation up to 1048576 decimal digits
 End of initialization. Time=       0.496 Sec.
 I= 1 L=       0        Time=       1.252 Sec.
 I= 2 L=       0        Time=       1.406 Sec.
 I= 3 L=       1        Time=       1.399 Sec.
 I= 4 L=       2        Time=       1.395 Sec.
 I= 5 L=       5        Time=       1.396 Sec.
 I= 6 L=      10        Time=       1.389 Sec.
 I= 7 L=      21        Time=       1.391 Sec.
 I= 8 L=      43        Time=       1.387 Sec.
 I= 9 L=      87        Time=       1.388 Sec.
 I=10 L=     174        Time=       1.394 Sec.
 I=11 L=     349        Time=       1.383 Sec.
 I=12 L=     698        Time=       1.378 Sec.
 I=13 L=    1396        Time=       1.391 Sec.
 I=14 L=    2794        Time=       1.377 Sec.
 I=15 L=    5588        Time=       1.467 Sec.
 I=16 L=   11176        Time=       1.394 Sec.
 I=17 L=   22353        Time=       1.336 Sec.
 I=18 L=   44707        Time=       1.295 Sec.
 I=19 L=   89415        Time=       1.206 Sec.
 End of main loop
 End of calculation.    Time=      27.604 Sec.
 End of data output.    Time=       0.255 Sec.
 Total calculation(I/O) time=      27.858(       2.727) Sec.
 ------ Ended super_pi run : 2011年 2月 1日 火曜日 19時36分26秒 JST

さくらのVPS

 Version 2.0 of the super_pi for Linux OS
 Fortran source program was translated into C program with version 19981204 of
 f2c, then generated C source program was optimized manually.
 pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
 compilation.
 ------ Started super_pi run : 2011年 2月 1日 火曜日 20:18:26 JST
 Parameter(%i) to super_pi is missing. Parameter value ? 20
 Start of PI calculation up to 1048576 decimal digits
 End of initialization. Time=       0.271 Sec.
 I= 1 L=       0        Time=       0.740 Sec.
 I= 2 L=       0        Time=       0.798 Sec.
 I= 3 L=       1        Time=       0.772 Sec.
 I= 4 L=       2        Time=       0.878 Sec.
 I= 5 L=       5        Time=       0.798 Sec.
 I= 6 L=      10        Time=       0.742 Sec.
 I= 7 L=      21        Time=       0.692 Sec.
 I= 8 L=      43        Time=       0.695 Sec.
 I= 9 L=      87        Time=       0.679 Sec.
 I=10 L=     174        Time=       0.682 Sec.
 I=11 L=     349        Time=       0.700 Sec.
 I=12 L=     698        Time=       0.729 Sec.
 I=13 L=    1396        Time=       0.722 Sec.
 I=14 L=    2794        Time=       0.707 Sec.
 I=15 L=    5588        Time=       0.709 Sec.
 I=16 L=   11176        Time=       0.698 Sec.
 I=17 L=   22353        Time=       0.668 Sec.
 I=18 L=   44707        Time=       0.659 Sec.
 I=19 L=   89415        Time=       0.617 Sec.
 End of main loop
 End of calculation.    Time=      14.499 Sec.
 End of data output.    Time=       0.078 Sec.
 Total calculation(I/O) time=      14.577(       0.613) Sec.
 ------ Ended super_pi run : 2011年 2月 1日 火曜日 20:18:42 JST

ServersMan@VPS(Entryプラン)

 Version 2.0 of the super_pi for Linux OS
 Fortran source program was translated into C program with version 19981204 of
 f2c, then generated C source program was optimized manually.
 pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
 compilation.
 ------ Started super_pi run : 2011年 2月 1日 火曜日 20:18:56 JST
 Parameter(%i) to super_pi is missing. Parameter value ? 20
 Start of PI calculation up to 1048576 decimal digits
 End of initialization. Time=       0.364 Sec.
 I= 1 L=       0        Time=       1.059 Sec.
 I= 2 L=       0        Time=       1.225 Sec.
 I= 3 L=       1        Time=       1.271 Sec.
 I= 4 L=       2        Time=       1.327 Sec.
 I= 5 L=       5        Time=       1.287 Sec.
 I= 6 L=      10        Time=       1.267 Sec.
 I= 7 L=      21        Time=       1.248 Sec.
 I= 8 L=      43        Time=       1.261 Sec.
 I= 9 L=      87        Time=       1.298 Sec.
 I=10 L=     174        Time=       1.320 Sec.
 I=11 L=     349        Time=       1.259 Sec.
 I=12 L=     698        Time=       1.251 Sec.
 I=13 L=    1396        Time=       1.265 Sec.
 I=14 L=    2794        Time=       1.231 Sec.
 I=15 L=    5588        Time=       1.222 Sec.
 I=16 L=   11176        Time=       1.241 Sec.
 I=17 L=   22353        Time=       1.288 Sec.
 I=18 L=   44707        Time=       1.158 Sec.
 I=19 L=   89415        Time=       1.091 Sec.
 End of main loop
 End of calculation.    Time=      24.936 Sec.
 End of data output.    Time=       0.149 Sec.
 Total calculation(I/O) time=      25.085(       1.269) Sec.
 ------ Ended super_pi run : 2011年 2月 1日 火曜日 20:19:28 JST

 

Total calculation time が早い方がいいんだよね、多分。

ってことで、

1位 : NEC Express5800/S70 タイプRB → 13.358秒
2位 : さくらのVPS → 14.577秒
3位 : ServersMan@VPS(Entryプラン) → 25.085秒
4位 : MacBook (Late 2007) → 27.858秒
5位 : Dell PowerEdge 430 → 30.579秒

という結果になりました。
MacBook が意外と遅いね。

 

姫野ベンチの結果

NEC Express5800/S70 タイプRB

mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 1133.231415 time(s): 0.362958 1.693779e-03

 Now, start the actual measurement process.
 The loop will be excuted in 495 times
 This will take about one minute.
 Wait for a while

 Loop executed for 495 times
 Gosa : 9.987461e-04
 MFLOPS measured : 1160.141740	cpu : 58.498923
 Score based on Pentium III 600MHz : 14.148070

Dell PowerEdge 430

mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 887.306594 time(s): 0.463555 1.693779e-03

 Now, start the actual measurement process.
 The loop will be excuted in 388 times
 This will take about one minute.
 Wait for a while

 Loop executed for 388 times
 Gosa : 1.071915e-03
 MFLOPS measured : 955.270751	cpu : 55.687660
 Score based on Pentium III 600MHz : 11.649643

MacBook (Late 2007)

mimax=  257  mjmax=  129  mkmax=  129
  imax=  256  jmax=  128  kmax=  128
  Start rehearsal measurement process.
  Measure the performance in 3 times.
   MFLOPS:  250.762   time(s):  1.64026  1.733593E-03
 Now, start the actual measurement process.
 The loop will be excuted in  109  times.
 This will take about one minute.
 Wait for a while.
  Loop executed for   109  times
  Gosa :  1.369256E-03
  MFLOPS:  251.219   time(s):  59.4877
  Score based on Pentium III 600MHz :  3.03259

さくらのVPS

mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 1096.811840 time(s): 0.375010 1.733593e-03

 Now, start the actual measurement process.
 The loop will be excuted in 479 times
 This will take about one minute.
 Wait for a while

 Loop executed for 479 times
 Gosa : 9.995485e-04
 MFLOPS measured : 1350.076831	cpu : 48.644165
 Score based on Pentium III 600MHz : 16.464352

ServersMan@VPS(Entryプラン)

mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 584.931168 time(s): 0.703186 1.693779e-03

 Now, start the actual measurement process.
 The loop will be excuted in 255 times
 This will take about one minute.
 Wait for a while

 Loop executed for 255 times
 Gosa : 1.184707e-03
 MFLOPS measured : 430.082239	cpu : 81.290987
 Score based on Pentium III 600MHz : 5.244905

 

見方が分かんないけど、
数値が大きい方がいいんだよね?

ってことで、

1位 : さくらのVPS
2位 : NEC Express5800/S70 タイプRB
3位 : Dell PowerEdge 430
4位 : ServersMan@VPS(Entryプラン)
5位 : MacBook (Late 2007)

という結果になりました。

 

っということは、
最近買った「NEC Express5800/S70 タイプRB」と「さくらのVPS」が、
ベンチマーク的に良い勝負ってことですね。

すげーな、さくらのVPS。

Mac から LAN 外の CentOS に VNC over SSH で接続するまでのメモ。

基本 SSH でいいんだけども、
実家のネットワークの CTU の設定を変更したいときに、
自宅のサーバーのブラウザを立ち上げたかったので。

 

VNC over SSH とは

VNC over SSH ってのは、
SSH のポートを通って VNC に接続するっていうことらしい。

VNC は通信が暗号化されてないから、
LAN 外のマシンに VNC 接続する場合は、
SSH のポートを通したほうが安全らしい。

 

環境

サーバー:
CentOS 5.5

クライアント:
MacOS 10.6 (Snow Leopard)

利用するアプリケーション:
Chicken of the VNC
→ Mac 用 VNCクライアント

SSH Tunnel Manager
→ SSH トンネルマネージャ(そのまんま)
※ライセンス書いてないけど、フリーで使っていいよね?

 

サーバー側の設定

以下、SSH は利用できる状態とします。

ちなみに、僕はSSHをパスワードでログインできる状態にしてるけど、
鍵方式でログインする場合はまたちょっと違うかも。

まずは VNC サーバーのインストールと設定。

# yum -y install vnc-server
# vi /etc/sysconfig/vncservers
# 以下の2行を追加
# Display番号が 1 、ユーザー名が username の場合
VNCSERVERS="1:username"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd"

VNC を利用するユーザーになって、
パスワードを設定。

# su username
# vncpasswd
Password: # パスワードを入力(SSHと同じである必要なし)
Verify: # パスワード再入力

VNC サーバーの起動。

# /etc/rc.d/init.d/vncserver start

VNC サーバーを起動すると、
VNC を利用するユーザーのディレクトリに設定ファイルができるので、
それを編集。

# vi /home/username/.vnc/xstartup
#twm & # ←をコメントアウト
gnome-session & # ←を追加

VNC サーバーを自動で起動するようにする。

# chkconfig vncserver on
# chkconfig --list vncserver
vncserver      	0:off	1:off	2:on	3:on	4:on	5:on	6:off

 

SSH Tunnel Manager の設定

SSH Tunnel Manager を起動。
preferences から設定を追加。

20110130_001

Name → 適当に
Login → SSHのログインユーザー名
Host → ホスト名
Port → SSHのポート番号

Local redirections の+ボタンクリック。

左から順に、
Port → 5901(VNCのポート番号)
LAN Host → localhost
Port → 5901(VNCのポート番号)
※なんでポート番号を2回入れるのかは分からない。
※「始まり」と「終わり」とかかなぁ。

設定が終わったら画面は閉じて、
さっき設定した設定名の再生ボタンを押す。

20110130_002

パスワードを聞かれるので、
SSHのパスワードを入力。

状態が Connected になればOK。

 

Chicken of the VNC の設定

Chicken of the VNC を起動。

20110130_003

Servers欄 → 適当に名前を付ける
Host → localhost
Display → 1(サーバー側で設定したディスプレイ番号)
Password → VNCユーザーのパスワード

Connect をクリックして、
サーバーのデスクトップが表示されれば完了。

20110130_004

 

以上。

LAN 外からサーバーのデスクトップが表示されるのは、
ちょっと感動します。
(僕だけ……?)

CentOS 4 なサーバーに yum で ruby をインストールしたら、
ruby 1.8.1 がインストールされた。

# yum -y install ruby
# ruby -v
ruby 1.8.1 (2003-12-25) [i386-linux-gnu]

まぁちょっとくらいバージョン低くてもいっかーって思ってたけど、
rubygems がうまくインストールできなくて困った。
(ruby 1.8.1 でインストールできる rubygems は 1.3.1 らしい。)

# wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
# tar xzf rubygems-1.3.1.tgz
# cd rubygems-1.3.1
# ruby setup.rb
./lib/rubygems.rb:723:in `set_paths': uninitialized constant Gem::Etc (NameError)
	from ./lib/rubygems.rb:719:in `each'
	from ./lib/rubygems.rb:719:in `set_paths'
	from ./lib/rubygems.rb:526:in `path'
	from ./lib/rubygems/source_index.rb:66:in `installed_spec_directories'
	from ./lib/rubygems/source_index.rb:56:in `from_installed_gems'
	from ./lib/rubygems.rb:736:in `source_index'
	from ./lib/rubygems/gem_path_searcher.rb:86:in `init_gemspecs'
	from ./lib/rubygems/gem_path_searcher.rb:21:in `initialize'
	from ./lib/rubygems.rb:684:in `new'
	from ./lib/rubygems.rb:684:in `searcher'
	from ./lib/rubygems.rb:683:in `synchronize'
	from ./lib/rubygems.rb:683:in `searcher'
	from ./lib/rubygems/custom_require.rb:34:in `require'
	from /usr/lib/ruby/1.8/tmpdir.rb:12
	from ./lib/rubygems/custom_require.rb:31:in `gem_original_require'
	from ./lib/rubygems/custom_require.rb:31:in `require'
	from setup.rb:95

ググってみると、
「バージョンを上げなよ」的なことを言われたので、
大人しくバージョンを上げることにする。

ただ、インストールはできるだけパッケージ管理アプリケーションに任せたいので、
下記サイトを参考にrpmパッケージを作成してインストールすることにする。

CentOSのyumでインストールしたRubyをバージョンアップ(インストール) « FlatLabs Blog

 

まずは ruby のアンインストールと、
rpm-build と checkinstall のインストール。


# yum -y remove ruby ruby-devel ruby-libs
# yum -y install rpm-build checkinstall
# rpm -q rpm-build
rpm-build-4.3.3-33_nonptl.el4_8.1
# rpm -q checkinstall
checkinstall-1.6.0-3.el4.rf

そんでもって、
ruby のソースをダウンロードして、
rpmパッケージ作成、
そしてインストール。

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz
# tar zxvf ruby-1.8.7-p302.tar.gz
# cd ruby-1.8.7-p302
# ./configure --prefix=/usr
# make
# checkinstall --fstrans=no

なんかいろいろ聞かれるけど、
上記サイトを参考に適当に答えてたら、
ruby-1.8.7-p302-1.i386.rpm が完成、
そしてインストール。

# rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p302-1.i386.rpm
# ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]

引き続き rubygems 1.3.7 をインストール。

# wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
# tar xzf rubygems-1.3.7.tgz
# cd rubygems-1.3.7
# ruby setup.rb
# gem -v
1.3.7

以上。

さくらのVPSで、
sinatraを動くようにするまでの個人的なメモ。

sinatra以外にも、
perlなCGIやphpも動く環境を作る。

さくらのVPS|VPS(仮想専用サーバ)はさくらインターネット

 

初期設定

下記を元に初期設定など。

CentOS5初期設定 – CentOSで自宅サーバー構築

ちなみに、

  • yum-updatesdは始めから止まってた
  • yum-fastestmirrorは始めから入ってた
  • yum-cronのインストールは止めておいた
  • SELinuxは始めから無効になってる

 

【2012年3月28日追記】

CeotOS6の標準なのか、
さくらのVPSの標準なのかは分からないけど、
logwatchが初期状態では入っていないようなので、
logwatchを別途入れる。

# yum -y install logwatch

 

ホスト名の変更

デフォルトのままでもいいんだけど、
今自分が何のサーバーを触っているのかを知りたいので。

vi /etc/sysconfig/network
HOSTNAME=localhost.localdomain  # 適当に変更

再起動で反映。

 

SSHの設定変更

sshd_configを編集する。

ちなみに、ssh_configっていうファイルもあるので、間違えないように。
僕はこれで小一時間はまった。。。

# vi /etc/ssh/sshd_config
Port ***22    # 適当に変更
PermitRootLogin no    # rootでのログインを禁止
PermitEmptyPasswords no    # パスワードなしでのログインを禁止

# /etc/rc.d/init.d/sshd reload
Reloading sshd:                                            [  OK  ]

 

日本語設定

下記を参考に。

UTF-8日本語設定(CentOS・putty・Emacs) – qnzm.log(クニジマログ)

# vi .bash_profile
# 下記2行を追加
export LANG=ja_JP.UTF-8
export LANG
# source .bash_profile

 

chrootユーザー作成スクリプト

下記の「chrootユーザー作成スクリプト作成」を参考に。

SSHサーバー構築(OpenSSH) – CentOSで自宅サーバー構築

さくらのVPSはx64環境なので、
そのままだとエラーになるので、
スクリプトの一部を修正

# 修正前:
cp /lib/libnss_compat.so.2 lib/
cp /lib/libnsl.so.1 lib/
cp /lib/libnss_files.so.2 lib/
cp /lib/ld-linux.so.2 ./lib/
cp /lib/libc.so.6 lib/
cp /lib/libm.so.6 lib/
cp /lib/libpthread.so.0 lib/
cp /lib/librt.so.1 lib/
cp /lib/libthread_db.so.1 lib/

# 修正後:
cp /lib64/libnss_compat.so.2 lib64/
cp /lib64/libnsl.so.1 lib64/
cp /lib64/libnss_files.so.2 lib64/
cp /lib64/ld-linux-x86-64.so.2 lib64/
cp /lib64/libc.so.6 lib64/
cp /lib64/libm.so.6 lib64/
cp /lib64/libpthread.so.0 lib64/
cp /lib64/librt.so.1 lib64/
cp /lib64/libthread_db.so.1 lib64/

№891 x86_64でOpenSSH+Chroot できません – Web Patio – CentOSで自宅サーバー構築

 

ファイアウォール構築

下記を参考に。

ファイアウォール構築(iptables) – CentOSで自宅サーバー構築

 

NTPサーバー構築

NTPサーバーは始めから動いてて、
「server ntp1.sakura.ad.jp」が設定されていた。

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp1.sakura.ad. .GPS.            1 u   20   64  377    0.559    0.010   1.412
 LOCAL(0)        .LOCL.          10 l   59   64  377    0.000    0.000   0.001

 

Apacheの設定

下記を参考に。

Webサーバー構築(Apache) – CentOSで自宅サーバー構築
ユーザーディレクトリ作成(/~ユーザー名/) – CentOSで自宅サーバー構築
バーチャルホスト設定 – CentOSで自宅サーバー構築
Webサーバー間通信内容圧縮(mod_deflate) – CentOSで自宅サーバー構築

ただ現時点だとPHPのバージョンが5.1.6なので、
5.2.xをyumでインストールしたい場合は下記参照。

#10 PHPのインストール・設定::VMWare×CentOS5 Windowsでカンタン開発環境 – 肉とご飯と甘いもの @ sotarok

GPGキーのインポート。

# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

yumリポジトリの追加。
(ファイルの新規作成)

# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

そしてアップデート。

# yum --enablerepo=utterramblings update php

phpのバージョン確認。

# php -v
PHP 5.2.16 (cli) (built: Dec 17 2010 14:09:03)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

 

あとついでに、後でpassengerをインストールときに必要になるので、
関連するライブラリをインストールしておく。

# yum -y install httpd-devel zlib-devel curl-devel openssh-devel

 

FTPサーバーの構築

下記を参考に。

FTPサーバー構築(vsftpd) – CentOSで自宅サーバー構築

 

サーバー監視

下記サービスで、外部からサーバーを監視する。

サーバー監視【無料】

 

rubyとRubyGemsとsinatraのインストール

【2011年4月2日 追記】
ruby 1.8.7 を入れると、hpricotの問題は解決します。
ruby をソースから RPM パッケージを作ってインストールする方法は、
下記参照。

どうのこうの » さくらのVPSにソースな ruby から RPM パッケージを作ってインストールするメモ

 

まずは ruby と関連ライブラリを yum でインストール。

# yum -y install ruby ruby-devel rdoc
# ruby -v
ruby 1.8.5 (2006-08-25) [x86_64-linux]

最新のrubygems(1.3.7)はruby 1.8.6以上じゃないとダメらしいので、
rubygems 1.3.5を入れる。
(rubygems 1.3.6以上からruby 1.8.6以上が必要らしい。)

# wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
# tar xzf rubygems-1.3.5.tgz
# cd rubygems-1.3.5
# ruby setup.rb
# gem -v
1.3.5
# cd
# rm -rf rubygems-1.3.5*

あとは、sinatraと必要なライブラリをインストール。

# gem install sinatra
# gem install hpricot --version 0.7
# gem install haml

hpricotは0.8.2がうまくインストールできないので、
0.7をインストールする。

Hpricot をインストールしようとしてエラー – snbhsmt_log

 

memcachedとmemcache-clientのインストール

yumの標準リポジトリではmemcachedが見つからないので、
下記を参考にRPMforgeリポジトリを導入。

RPMforgeリポジトリ導入(RPMforge) – CentOSで自宅サーバー構築
№1849 RPMforgeリポジトリ導入エラー インポート不可 – Web Patio – CentOSで自宅サーバー構築

# yum -y install yum-priorities
# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 #追加

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 #追加

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 #追加

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 #追加

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -ivh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

libeventってのが必要らしいので、
インストール。

# yum -y install libevent libevent-devel

memcachedをインストール。

# yum -y install memcached

とすると、いろいろと依存関係があるらしく、
インストールされない。
–skip-brokenオプションを試してみろってことだったので、
試してみる。

# yum -y --skip-broken install memcached
# rpm -q memcached
memcached-1.4.5-1.el5.rf

無事インストールできた。
他にもいろいろインストールされたけど、
まぁいいや。

そして、下記でmemcachedの設定変更。

# vi /etc/sysconfig/memcached

そして、memcachedを起動。

# /etc/rc.d/init.d/memcached start
Starting Distributed memory caching (memcached):           [  OK  ]
# chkconfig memcached on
# chkconfig --list memcached
memcached      	0:off	1:off	2:on	3:on	4:on	5:on	6:off

rubyからmemcachedを扱いたいので、
memcache-clientをインストール。

# gem install memcache-client

 

passengerのインストールとsinatraの動作テスト

下記を参考に。

Sinatraで鼻歌まじりのWeb開発

# gem install passenger
# passenger-install-apache2-module

httpd-develとapr-develをインストールしろと言われたので、
インストールする。

# yum -y install httpd-devel

上記でapr-develもインストールされた。

もう一回、passengerのインストール。

# passenger-install-apache2-module

httpd.confに3行追加しろと言われるので、
追加する。

# vi /etc/httpd/conf/httpd.conf
# 下記3行を追加
LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/bin/ruby

sinatraを動かすDocumentRootをpublicに修正。

#  vi /etc/httpd/conf.d/virtualhost.conf
#DocumentRoot /home/user/public_html
DocumentRoot /home/user/public_html/public

httpdをリロード。

# /etc/rc.d/init.d/httpd reload

あとは、FTPで接続して、
public_htmlの下にpublicディレクトリ(空)とtmpディレクトリ(空)を作成。
public_htmlの下にconfig.ruとhello.rbを配置。

こんな感じ。

public_html/
+ config.ru
+ hello.rb
+ public/
+ tmp/

# config.ru
require 'hello'
Run Sinatra::Applocation

# hello.rb
require 'rubygems'
require 'sinatra'
get '/' do
    'Hello, world.'
end

で、動かんし。

いろいろ検索したら、
rack 1.2.1で動かない事例を発見。

Just installed sproutcore and getting error running sc-init – SproutCore | Google グループ

上記を参考に、
rack 1.2.1をアンインストールして、
rack 1.2.0を入れ直す。

# gem uninstall rack
# gem install rack --version '1.2.0'

で、ようやく動いた。

 

不要なデーモンとコンソールの停止

下記を参考に。

CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記)

まずは不要なデーモンの停止。

# vi daemons_stop.sh
chkconfig acpid off
chkconfig autofs off
chkconfig avahi-daemon off
chkconfig bluetooth off
chkconfig cups off
chkconfig firstboot off
chkconfig gpm off
chkconfig haldaemon off
chkconfig hidd off
chkconfig kudzu off
chkconfig lvm2-monitor off
chkconfig mcstrans off
chkconfig mdmonitor off
chkconfig messagebus off
chkconfig netfs off
chkconfig nfslock off
chkconfig pcscd off
chkconfig portmap off
chkconfig rawdevices off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig xfs off

# sh daemons_stop.sh
# rm -f daemons_stop.sh

サーバーを再起動して、設定を反映。

ちなみに、不要なコンソールは、
始めからコメントアウトされてた。

 

これで、一通り準備完了。

yum update が出来なくなって、
いろいろ調べているうちにyumを間違えて消してしまった。

yum -y remove yum-fastestmirror

でyumまで消えると思わないじゃん。。。

そんな訳で、調べてyumをインストールし直しました。

参照サイト
はじめての自宅サーバ構築 Fedora/CentOS – yum(The Yellow dog Updater, Modified)のインストール

 

まずは、yumパッケージをダウンロード。

# wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm

そしてインストール。

# rpm -ivh yum-3.2.19-18.el5.centos.noarch.rpm
エラー: 依存性の欠如;
yum-fastestmirror は yum-3.2.19-18.el5.centos.noarch に必要とされています

yum-fastestmirror が必要とされているらしいので、ダウンロードとインストール。

# wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
# rpm -ivh yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
エラー: 依存性の欠如:
yum >= 3.0 は yum-fastestmirror-1.1.16-13.el15.centos.noarch に必要とされています

どないすりゃええねんって思ったら、
同じ症状の人がいた。

yumのインストールについて

rpmを半角スペースで区切ればいいのね。

# rpm -ivh yum-3.2.19-18.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm

これでインストール完了。

yum update も無事、通りました。

よかったよかった。

今いるディレクトリ内のファイル、ディレクトリのファイル容量を調べたい時のメモ。
Linuxのコマンド、なかなか覚えられない。。。

du -hs ./*

duがファイル容量調べるコマンド。
hは単位を付ける。
sは指定したディレクトリのみ表示。

参考
【 ディレクトリの使用サイズを調べる 】:ITpro