個人的な覚え書き

すぐ忘れるので。

さくらのVPSに環境を構築するメモ--rubyまわり--リトライ

yumrubyを入れる

まずはyumで検索
$ yum search ruby

入るrubyのバージョンを確認
$ yum info ruby
バージョンは1.8.7.352だそうだ。

gemも調べる
$ yum info rubygems
gemは1.3.7だって。

両方yumで入れることにする。
$ sudo yum install ruby rubygems


rackを入れる。
$ sudo gem install rack -v=1.1.0
すんなり入った。



次回からは必要なものを一括で入れたい。
$ sudo yum install ruby rubygems zlib openssl openssl-devel ruby-devel sqlite-devel zlib-devel
(opensslはすでに入っているかも)

さくらのVPSに環境を構築するメモ--rubyまわり

昔の自分のメモを参考にして入れていく。
そして同じようなとこでつまずいている。。。
バージョンが違うとすごく面倒なので指定して入れていく。

まずはruby

mkdir src
cd src
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
tar zxvf ruby-1.8.7-p72.tar.gz
cd ruby-1.8.7-p72
./configure --prefix=/usr
sudo make && make install

パーミッションがないと言われるのでrootで入れた。

su
# make && make install

rubygemを入れる

wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz
tar zxvf rubygems-1.3.0.tgz
cd rubygems-1.3.0

su
# ruby setup.rb

パスを通す
export PATH=/var/lib/gems/1.8/bin:$PATH

rackを入れる


sudo gem install rack -v=1.1.0

zlibがなくてエラーになる。

zlib関連を入れる

sudo yum install zlib*

設定
cd src/ruby-1.8.7-p72/ext/zlib/

sudo ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
sudo make
make install

もう1回rackを入れる
sudo gem install rack -v=1.1.0

opensslがないって。

opensslのインストールでつまずく。
rubyyumから入れたい。
などなどによりソースから入れたrubyをアンインストールする。

$ cd /src/ruby-1.8.7-p72
# cat .installed.list | xargs rm
 
いろいろやり直し。 

さくらのVPSに環境を構築するメモ--OSの基本編

初期設定だとCentOSなので、OSはそのまま利用する。
Debianといろいろ違うのでとまどう。
なので、メモを残しておこう。

ユーザ関連の設定

まずはユーザを作る。
いきなりrootでログインできちゃうらしい。。。
# useradd user_name

作ったユーザのパスワードを設定する
# passwd user_name

そのユーザからのみrootになれるようにする。

ユーザをwheelグループに追加
# usermod -G wheel user_name

pamを書き換える
# vi /etc/pam.d/su

コメントアウトを解除
#auth required pam_wheel.so use_uid
 ↓
auth required pam_wheel.so use_uid

確認。rootになってみる。
$ su -

SSHの設定。rootではログインできないようにしておく。

sshdの設定書き換え。
# vi /etc/ssh/sshd_config

rootでログインを禁止(コメントアウトを解除して、yesからnoへ変更)
#PermitRootLogin yes
 ↓
PermitRootLogin no

空のパスワードを禁止
#PermitEmptyPasswords yes
 ↓
PermitEmptyPasswords no

ユーザーuser_nameのみログインを許可(最終行に追加)
AllowUsers user_name

sshdを再起動
# /etc/rc.d/init.d/sshd restart

不要なサービスの停止

サービス状態の表示
# service --status-all
割と何も入ってなかった。。

sudoersを変更する。

昨日、wheelにユーザ追加をしたんだが、こっちで十分だったのでは。。。

ユーザがsudoを使えるようにする。
#visudo

ホスト名の変更

今回は変更しなくてもいいような気がするのでやめた。

さくらVPSにRails環境構築_4--DB関連

もうちょっとなので頑張ってDBまわりをやりとげたい。

現状確認
sqlite3 -version
3.3.6

入れてみる
sudo gem install sqlite3-ruby

gemの1.3.5以上を要求されてエラー

バージョンを指定する
sudo gem install sqlite3-ruby -version 1.2.5

入った!めずらしくスムーズ。

動作確認をするとちゃんと動いてる。
よかったー。

さくらVPSにRails環境構築_3--rmagick関連

ImageMagickとRMagickを入れていく。
yumで入れるとバージョンが古いので前回いろいろ苦労した。
今回は新しいものを入れてみる。

参考にしたところ
http://www5.ocn.ne.jp/~m-shin/linux/centos-imagemagick-install.html

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz

tar xvfz ImageMagick.tar.gz
cd ImageMagick-6.7.4-0
./configure
make
make install

makeにけっこう時間がかかる。
どうやらMagick-develも一緒に入っているみたい。
そして/usr/local/binに入るらしい

which convert
/usr/local/bin/convert

which Magick-config
/usr/local/bin/Magick-config

しかし...

convert --version
convert: error while loading shared libraries: libMagick.so.10: cannot open shared object file: No such file or directory

エラーになる。
こっちはできる。

Magick-config --version
6.7.4 Q16

sudoをつけるとできる。

sudo convert --version
Version: ImageMagick 6.7.4-0 2011-12-14 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP

libMagick.so.10ってどこにあるんだ?

ここを参考にいろいろ試した。
http://www.pistolfly.jp/weblog/2011/03/centosimagemagick.html

とりあえずPATHの設定
vi ~/.bashrc
追加
alias sudo='sudo env PATH=$PATH'
反映
source .bashrc

あとこれもやってみた
ldconfigの設定
確認
sudo /sbin/ldconfig -p | grep libMagick
大丈夫そう

もう1回
sudo gem install rmagick

やっぱエラー
Can't install RMagick 2.13.1. Can't find MagickWand.h.

MagickWand.hがないらしい。

疲れた....

同じブログの関連エントリを参照

find /usr/local -name MagickCore.pc

sudo PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

インストール成功。ありがたや。
WEBrickが動いた。

いやー、大変だった。

あとはDB関連を整備するのみ。

さくらVPSにRails環境構築_2--ruby関連

こっからrailsまわりのものを入れていく。

rubyを入れる


普通に入れると1.8.5が入る。できたら1.8.7を入れておきたいので手動で。

mkdir src
cd src
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
tar zxvf ruby-1.8.7-p72.tar.gz
cd ruby-1.8.7-p72
./configure --prefix=/usr
sudo make && make install

パーミッションがないと言われてエラー。
rootで入れちゃえ。

su
# make && make install

rubygemを入れる


こっちも手動で入れる

wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz
tar zxvf rubygems-1.3.0.tgz
cd rubygems-1.3.0

su
# ruby setup.rb

パスを通す
export PATH=/var/lib/gems/1.8/bin:$PATH


この後、参考にした先にrdocをインストールする必要があると書いてあったので何も考えずに入れたら1.8.5が入った。
そしたらrubyまで1.8.5に....
rdocをremoveしてmake installからやり直した。
rdocのインストールは必須ではないらしい。

アプリを動かしてみる


ソースをzipで固めてftpでup
unzipして動かしてみた

ruby script/server

エラーが出る。rackがないようなのでインストー
前回バージョン指定しなかったら困ったことになったので指定する

sudo gem install rack -v=1.1.0

またエラー
zlibがないそう。。。
ここから手間取った。

zlib関連を入れる

sudo yum install zlib*

zlibとzlib-develが入った。

ここから問題。最終的にはこちらを参考にして解決した。
http://akabeko.sakura.ne.jp/blog/2010/09/さくらのvps-を使いはじめる-6/

cd src/ruby-1.8.7-p72/ext/zlib/

sudo ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
sudo make
make install

もう1回rackを入れる
sudo gem install rack -v=1.1.0

アプリの起動
ruby script/server

またもrackがないと言われる。なんで?
どうやらrootだといける

sudo ruby script/server

....とりあえず動くから後回しにする(よくないけど..)

次はopensslがないと言われる
sudo yum install openssl-devel

cd src/ruby-1.8.7-p72/ext/openssl/

sudo ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
sudo make
make install

次はRMagickがないと言われてエラー。
ImageMagickが入ってないのでまずはこっちから。

さくらVPSにRails環境構築_1--OS基本編

さくらVPSではカスタムOSのインストールというのをやればDebianが選択できる。
...のだが、なぜかこのdebian外に出られない。。。
ネットワークの設定が悪いのかと思ったけど、大して設定項目もないし。。。
あきらめてデフォルトのCentOSを使うことに。
前にローカルのCentOSに環境構築した時のメモを参考にした。前回の苦労がちょっと報われた気持ち。

※基本は古い値をコメントアウトして新しい値を下の行に追加している

ユーザの作成と設定


最初はrootしかないのでまずはユーザをつくる

#useradd xxxx
#passwd xxxx

んで、sudoersに追加

#visudo

ホスト名の変更


localhostになっているのをxxxxに変更
sudo vi /etc/sysconfig/network

#HOSTNAME=localhost.localdomain
HOSTNAME=xxxx

sudo vi /etc/hosts

#127.0.0.1 localhost.localdomain localhost
#::1 localhost.localdomain localhost
127.0.0.1 xxxx
::1 xxxx

sshdの設定


設定の書き換え
sudo vi /etc/ssh/sshd_config

#PermitRootLogin no
PermitRootLogin no

書き換えて再起動
sudo /sbin/service sshd restart

ftpdの設定


ftpdは入ってなかったのでインストー
sudo yum -y install vsftpd

設定変更
sudo vi /etc/vsftpd/vsftpd.conf

anonymousを許可しないように変更

#anonymous_enable=YES
anonymous_enable=NO

アスキーモードでのUP、DLの許可
#ascii_upload_enable=YES
#ascii_download_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES

ホームディレクトリより上層へのアクセスを禁止する。
以下を追加(デフォルトで禁止に設定)
chroot_local_user=YES

ftpはファイルのUP、DLにしか使わないのでこれくらいでいいかな。
ユーザ自分だけだし、普段はftpdはstopして、必要な時だけstartする。

vsftpdの再起動。
sudo /etc/rc.d/init.d/vsftpd restart

OSの基本的な設定はこのくらい。