2009年5月11日月曜日

ScalrをUbuntuにInstallする。

Scalr(スケィラー)をLinux族Debian系UbuntuにInstallする為のメモ。適宜内容は追加、修正していきます。
参考:Get A Sys Admin: How to install Scalr on Ubuntu 8.10 EC2 Instance

今回はUbuntu9.04Serverを利用。なぜかって?最新版が好きだから(゚Д゚)。

1.OS自体の準備。


まず最初にUbuntuをInstall。インストール途中の設定でLAMP機能、SSH2機能をインストール。
MySQLインストール時にパスワード設定するからお忘れなく。
インストールおわったらとりあえずシステム更新。Ubuntuでroot権限やる時は
sudo -i

更新おわったら再起動
apt-get update
apt-get upgrade
shutdown -hr now


2.追加パッケージのインストール


後から追加するよりも、本当ならOS入れる時に選択してるのがスマートなんだろうなぁ。
パッケージ入れ終わったらApache再起動を忘れずに。
apt-get install bind9 mysql-server mysql-client apache2 php5-cli libapache2-mod-php5 php5-mysql php5-mcrypt php5-mhash php5-snmp make rrdtool snmp php5-dev libcurl4-gnutls-dev php-pear libssh2-1 libssh2-1-dev

で次にApache再起動
/etc/init.d/apache2 restart


3.SSH関係のインストール


次に一番の難関SSH2周り。ここが難関。
取り敢えずまず下記のコマンドを打ってインストール試行
pecl install ssh2 "channel://pecl.php.net/ssh2-0.10"

もしこの状態でエラーが出ずにインストール出来たならラッキー。次へ進む。もしエラーが出たら(殆どの場合出ると思うけど・・・)下記の作業を実施する。
SSH2のSourceの一部を修正する。SSH2.Cファイルの480行目付近を変更する為にファイルを開いて
vi /tmp/pear/download/ssh2-0.10/ssh2.c

480行目辺りまで移動して下記の様に書き換える
#if LIBSSH2_APINO < 200412301450 ↓ #if false


再度インストール試行
configure
make
make install
echo extension=ssh2.so >> /etc/php5/apache2/php.ini
/etc/init.d/apache2 restart


4.Scalr本体のダウンロードと解凍


さてやっとScalr本体に手をつけます。
wget http://scalr.googlecode.com/files/scalr-1.0RC5.tar.gz
tar zxvf scalr-1.0RC5.tar.gz

解凍したファイルの中にあるMySQL用のSQLを実行する
mysqladmin -p create scalr
mysql -p scalr < scalr/sql/database.sql


SQL終わったらScalrを移動させて、各種パーミッション設定。
mkdir /var/scalr
cp -R scalr/* /var/scalr/
chmod 777 -R /var/scalr/app/cache /var/scalr/app/cron/cron.pid /var/scalr/app/etc/.passwd
chown www-data:www-data -R /var/scalr/app/templates/
chmod 777 -R /var/scalr/app/templates/
rm -rf /var/www/
ln -sf /var/scalr/app/www /var/
chmod a+rX -R /var/www

でインストール終了。

5.ScalrにMySQLの設定をする


次にScalrにMySQLの接続設定をする
/var/scalr/app/etc/config.ini を編集して
vi /var/scalr/app/etc/config.ini

下記の内容を追加する。
[db]
driver=mysql;
host = "localhost"
name = "scalr"
user = "root"
pass = "*YOUR PASS HERE*"


6.Cronを設定する


定時実行処理を設定するのでCron設定ファイルを開いて
vi /etc/crontab

下記内容を追記する。
* * * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --Poller
1 1 * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --RotateLogs
*/15 * * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --MySQLMaintenance
*/6 * * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --DNSMaintenance
*/3 * * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --DNSZoneListUpdate
*/2 * * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --DBQueueEvent
*/11 * * * * /usr/bin/php -q /var/scalr/app/cron/cron.php --Cleaner


7.EC2接続用のファイルを設置する


XXXの部分は個々のAccountで違う値。certで始まるファイルとpkで始まるファイルの二つを下記の場所にアップロードする
/var/scalr/app/etc/cert-XXXXXXXXXXXX.pem
/var/scalr/app/etc/pk-XXXXXXXXXXXX.pem


8.Apacheの設定


Scalr:Incorrect XMLってERRORがでる。の関係。
下記のファイルを編集する。
vi /etc/apache2/sites-available/default

書き換えるのは「DocumentRoot /var/www」の中の設定。書き換える内容は下記の通り。
AllowOverride None

AllowOverride All

続いてMod_RewriteをLoadする様に設定変更してApacheの再起動
cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load
/etc/init.d/apache2 restart


9.phpのpecl_httpのインストール


Scalr:phpのHttpRequestClassがないというエラーがでる。関係。
Zlibをインストール
wget -P /usr/local/src http://www.zlib.net/zlib-1.2.3.tar.gz
cd /usr/local/src
tar xzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr/local
make
make install

pecl_httpのインストール
pecl install pecl_http

でもってphp.iniにパラメータを追加して再起動
echo extension=http.so >> /etc/php5/apache2/php.ini
sudo /etc/init.d/apache2 restart




最終更新
2009/05/13
・XMLのERRORと、httpRequestのERROR対応の為の内容を追記
・Templateファイルを画面上から設定する為のコマンドを追記。
コメントを投稿