2013年02月28日

[Web] さくらVPSでのメンテナンスについて

昨年4月から、node.jsを使って小規模なサーバーを運用していました。

[Web] node.jsを使ってみる(さくらVPS編)
http://blog.be-style.jpn.com/article/54860074.html?1361976544

VPSなので、自分でメンテナンスをしなくてはいけません。
ソフトウェアを最新のものにするのはひと苦労でした。

その作業についての備忘メモ。

やることはこの3点。
@node.js を最新版にする
AMySQL を最新版にする
BさくらVPSで使われているもろもろのソフトウェアをまとめてアップデートする


-----------------------------------------------------
@node.js を最新版にする
・現バージョンをチェック
$ node --version
・最新版をチェック
http://nodejs.org/#build と比較する。 ※2013.2.27.現在の最新バージョンは、0.8.21

・最新版をダウンロード
$ wget http://nodejs.org/dist/v0.8.21/node-v0.8.21.tar.gz

・解凍
$ tar zxvf node-v0.8.21.tar.gz
 → node-v0.8.21 というディレクトリができるのでそこに移動

・ビルドとインストール
$ ./configure
$ make
$ su   ※root権限にスイッチ
# make install

・最新版になっているかチェック
$ node --version


-----------------------------------------------------
AMySQL を最新版にする
・現バージョンをチェック
$ mysqladmin -u root -p version
$ rpm -qa | grep -i ^MySQL-

・最新版をチェック
http://www.mysql.com/downloads/mysql/ と比較する。 ※2013.2.27.現在の最新バージョンは、5.6.10

・バージョンアップ ※ビルド番号違い
$ su
# yum -y install mysql-server
※この方法は5.1.xx(ビルド番号違い) 版のみ対応 5.x(マイナー番号違い) をバージョンアップするのは下記方法
バージョン番号について:
http://mainori-se.sakura.ne.jp/sst/wiki.cgi?page=%A5%D0%A1%BC%A5%B8%A5%E7%A5%F3%C8%D6%B9%E6%A4%CE%C9%D5%CD%BF%A5%EB%A1%BC%A5%EB

・最新版をダウンロード
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.10-1.linux_glibc2.5.x86_64.rpm/from/http://cdn.mysql.com/
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.10-1.linux_glibc2.5.x86_64.rpm/from/http://cdn.mysql.com/
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm/from/http://cdn.mysql.com/
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm/from/http://cdn.mysql.com/

準備ができたので、いよいよサーバーを停止します。。。

・MySQLサーバーを停止
# /etc/init.d/mysqld stop

・古いほうを削除 (rpm -qa | grep -i ^MySQL- でリストアップできる)
# yum remove mysql-server-5.1.67-1.el6_3.x86_64
# yum remove mysql-5.1.67-1.el6_3.x86_64
# yum remove mysql-libs-5.1.67-1.el6_3.x86_64

・新しいほうをインストール
# rpm -ivh MySQL-{devel,shared,client,server}-*.rpm

・アップグレード
# /etc/init.d/mysql start

「/etc/init.d/mysql start」を実行したところ
The server quit without updating PID file (/var/lib/mysql/sakuravps.be-style.jpn.com.pid).
というエラーが出ました。
調べたところ、3つの対応が必要でした。

★★★ エラー対応 ★★★
# /etc/init.d/mysql start
The server quit without updating PID file (/var/lib/mysql/sakuravps.be-style.jpn.com.pid).

Q1./etc/my.conf が消えてる!
A1.my.cnf.rpmsave(インストール時に自動生成される) からコピー

Q2.[ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded do
wn to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
↑エラーログ( /var/log/mysqld.log )より
A2./var/lib/mysql の「ib」ではじまるファイルを削除
【参考】http://www.ilovex.co.jp/blog/system/projectandsystemdevelopment/mycnfinnodbmysql.html

Q3.[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
   [ERROR] Aborting
↑エラーログ( /var/log/mysqld.log )より
A3./etc/my.conf の以下をコメントアウト
# character-set
# default-character-set=utf8 ←これ
★★★ エラー対応(ここまで) ★★★

・改めてアップグレード
# /etc/init.d/mysql start
# mysql_upgrade -u root -p

・再度バージョンチェック
mysqladmin -u root -p version
最新版になっていれば成功!

【参考】
【MySQL】5.1から5.5へのアップグレード(rpmで):
http://www.softel.co.jp/blogs/tech/archives/2288


-----------------------------------------------------
BさくらVPSで使われているもろもろのソフトウェアをまとめてアップデートする
yumを使えば一気に解決!これは知りませんでした。

・現状をチェック ※アップデート対象が一覧表示されます
$ yum check-update

・一斉アップデート
$ sudo yum update

【参考】
さくらのVPSの運営時にチェックしておきたいセキュリティ対策:
http://colo-ri.jp/develop/2012/01/sakura-vps-security-check.html


-----------------------------------------------------

サーバーを止めずにアップグレードしたかったのですが、そこまで調べきれなかったのでそれは次回の課題。
posted by be-style at 00:30| Comment(0) | Web

2012年09月20日

[Web] Facebookページのウィジェット(Like Box)を設置してみた

Facebookページを作ってみました。

be-styleのFacebookページ:
http://www.facebook.com/bestyle.jpn

ここではリリース情報の告知や、be-styleとして収集している情報の共有を目的としています。
アプリづくりをするとき、運用やマネタイズを考えるときににどんな情報を集めているのか、
ここで共有できたらと思います。

あとは、Facebookページへの導線をどうするか考えたときに、
Twitter同様、ブログの右メニューにウィジェットを表示してみようと思い設置してみました。
使ったのは、「Libe Box」。

Like Box:
http://developers.facebook.com/docs/reference/plugins/like-box/

設定は簡単で、上記ページで遷移先ページのURLや幅や高さを設定するだけでした↓

20120920facebookwedgit.png

サポートされている横幅の最小値が292pxという点に注意です。
ウチのブログの右メニューの横幅はそれより狭いので、表示がバグってもサポート外です orz

まずはこの形で運用してみよう。
posted by be-style at 01:19| Comment(0) | Web

2012年05月03日

[Web] WEB+DB PRESS Vol.68 を読んでみた

今気になっている「node.js」「ゲームAI」「リーンスタートアップ」について特集が組まれていたので買ってしまいました。
どれも触り程度という内容ですが、それぞれがどういうものかを知るには丁度よかったです。



(1) node.jsについて
概要説明と簡単なプログラム例が掲載されています。
記載しているのはサイバーエージェントの方でした。
なんとなく触っているnode.jsですが、イベント処理の特性とかエラー処理の書き方とか、
何が得意で何が不得意なのかがざっくり理解できたと思います。

現在興味を持っているリアルタイム通信についても触れていて、現在の問題点や
スマホで実装するときの注意点が掲載されてあって勉強になりました。


(2) ゲームAIについて
ゲームを作っていく上で、敵が登場する場合には必ずAI(人工知能)が必要になります。
本格的なゲームAIの参考書を買う前に「人工知能ってどういうものか」を知るには丁度よかったです。
記載しているのはスクエニの方でした。

ゲームを面白くするのは「適度な強さの敵」なんですよね。
まだこの分野に手を付けるのは早いかなー。


(3) リーンスタートアップについて
最近目にすることが多くなった単語の1つに「リーンスタートアップ」があります。
自分で調べてもあまりピンとこなかったのですが、
この雑誌ではクックパッドの方が実例を挙げて説明しているので、
具体的なイメージが伝わってきてよかったです。


常に新しい技術や方法論が生まれているので、どれが最適な方法なのかはいつも手探り状態です。
そういう状況で、出来るだけ効率よくものづくりが出来ればなぁと思っています。

効率よくアプリを作って、アプリが安定動作して、ユーザー満足度が高くて、長く遊んで貰える!
これが理想です。
posted by be-style at 12:49| Comment(0) | Web