8月 19

Twitter Client Ranking by Streaming APIの構成は、
PHP5.3.3(with APC) + MongoDB1.6.1 + Apache2.2.3で、フレームワークにsyfmony1.4.6を利用しています。この構成が動く最低限の環境を構築した際のメモです。
さくらのVPSはサービスはほとんど入っていませんでしたが、gccやautoconfは既に入っていました。

#Apache
sudo yum install httpd.x86_64

#PHPのコンパイルに必要(パラメータによる)
sudo yum install httpd-devel.x86_64
sudo yum install libxml2-devel.x86_64
sudo yum install openssl-devel.x86_64
sudo yum install curl-devel.x86_64

#最新版PHP取得→コンパイル→インストール
wget http://ve2.php.net/get/php-5.3.3.tar.gz/from/jp2.php.net/mirror
tar vfxz php-5.3.3.tar.gz
cd php-5.3.3
./configure \
--enable-mbstring \
--with-apxs2=/usr/sbin/apxs \
--with-curl \
--with-openssl \
--with-config-file-path=/etc  \
--enable-dom \
--with-libdir=lib64
meke
sudo make install

#symfonyのインストール
sudo pear channel-discover pear.symfony-project.com
sudo pear install symfony/symfony

#PHP拡張のインストール
sudo pecl install apc
sudo pecl install mongo

#PHP拡張の反映
sudo vi /etc/php.ini

extension = mongo.so
extension = apc.so
apc.enabled=1

PHPもRemiのリポジトリを利用すると簡単に最新版がインストールできますが、cli版がバックグラウンドで実行できない不具合があるのでソース版を利用しました。

参考

MongoDBをインストール

下記URLを参考にMongoDBのリポジトリを設定してインストールします。
参考:CentOS and Fedora Packages

sudo vi /etc/yum.repos.d/10gen.repo 

[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/x86_64/
gpgcheck=0

name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0

sudo yum install mongo-stable* --enablerepo=10gen
sudo yum install  mongo-10gen* --enablerepo=10gen

最新のstableバージョン1.6.1がインストールされます(2010年8月19日現在)最新のstableバージョン1.8.2がインストールされます(2011年7月21日現在)。デフォルトの設定は以下の通りです。
設定ファイル:/etc/mongod.conf
ログファイル:/var/log/mongo/mongod.log
データディレクトリ:/var/lib/mongo/

起動は起動スクリプトでOK

sudo /etc/init.d/mongod start

2011-7-21修正 yumリポジトリの修正。最新バージョンの修正。

Tagged with:
12月 08

yubitter』という携帯電話向けのTwitterクライアントサービス(ゲートウェイ)をsymfonyで作りました。(サービスの詳細はリンク先でご確認下さい。)

yubitter

cloudrop発のアウトプットとして開発に取り組んだもので、初めてのリリースとなります。
タイトルにはsymfonyと書きましたが、開発には数多くのオープソースソフトウェアのお世話になっています。

できる事ならyubitterもソースを公開したいのですが、利用しているライブラリのライセンスの確認、環境依存部分の抽象化、symfony1.4系への対応、ドイヒーなコードの修正などを行う必要があり、今は難しいところです。
最終的にはそういう諸々を乗り越えての公開を目指して行きたいと思っています。

事実上のモバイル向けクライアントの標準であるモバツイッターや、多機能でアジャイルなMovatter、さらには公式の携帯版がある中で、いまさら感の否めないサービスですから、サービス自体による貢献というよりも、サービスやシステムの内部を公開することによる貢献を目指していくつもりです。

そういう意味でも、開発・運用をするにあたっての裏話はどんどん公開していきたいと思います。

もちろん、魅力のないサービスは、システムとしても魅力がないのと同じなので、
サービスとしておざなりにするということではありません。

サービスに関する質問や不具合の報告などは、Twitterで受け付けております。
お気軽にお問い合わせください。(@ms76

最後に、利用させていただいているサービスやソフトウェアを紹介いたします。(順不同)
この場を借りて、感謝いたします。ありがとうございます。

インフラ

Rackspace Cloud Servers

Webサーバー、アプリケーションサーバー、DBサーバー、セッションサーバーとして利用。

Amazon S3

メールによる写真アップロードを受け取るストレージサーバーとして利用。

Amazon CloudFront

ストレージサーバーのフロントエンドとして利用。

OS・サーバー・ミドルウェア

CentOS 5.3

Rackspace Cloud Serversにて標準で選択できるOSを利用。

Apache 2.2.13、PHP 5.3.0

Webサーバー、アプリケーションサーバー(mod_php)として利用。

MySQL 5.0.77

DBサーバーとして認証用ユーザー情報、設定情報などの保存に利用。

Squid 2.6.STABLE21

外部API接続時のプロキシキャッシュサーバーとして利用。

Postfix 2.3.3

メール投稿、メール登録、メール送信時のメールサーバーとして利用。

flare 1.0.8

セッションサーバーとして利用。

PHP、PEARライブラリ

symfony 1.2.10

Webフレームワークとして利用。

携帯向けに下記プラグインを利用。

Mail_Mime 1.5.2、Mail_mimeDecode 1.5.1

受信したメールの処理に利用。

Net_IPv4 1.3.1

IPアドレスが特定のネットワークアドレスの範囲にあるかどうかの計算に利用。

Net_UserAgent_Mobile 1.0.0

携帯電話のUser Agentの取得に利用。

Amazon S3 PHP class 0.4.0

Amazon S3 APIとの通信に利用。

qdmail 1.2.6b

メール送信に利用。

TwitterOAuth library

Twitter APIのOAuth認証に利用。

QRcode image PHP scripts version 0.50g

QRコード生成に利用。

HTML_CSS_Mobile

外部CSSをインラインCSSに変換する際に利用。

Tagged with:
preload preload preload