ローカルマシン上のvmwareにインストールしたCentOS5.2へshindigとpartuzaをインストールしました。
サーバに必要な環境は
といった感じ。私の環境とかは下記の通りです。
[root@localhost ~]# cat /etc/redhat-release CentOS release 5.2 (Final) [root@localhost ~]# rpm -qa|grep php php-5.2.6-jason.1 php-gd-5.2.6-jason.1 php-mcrypt-5.2.6-jason.1 php-common-5.2.6-jason.1 php-ldap-5.2.6-jason.1 php-xml-5.2.6-jason.1 php-devel-5.2.6-jason.1 php-mysql-5.2.6-jason.1 php-cli-5.2.6-jason.1 php-pdo-5.2.6-jason.1 php-pear-1.6.2-1.jason.1 [root@localhost ~]# rpm -qa|grep mysql mysql-server-5.0.45-7.el5 mysql-5.0.45-7.el5 libdbi-dbd-mysql-0.8.1a-1.2.2 php-mysql-5.2.6-jason.1 mysql-connector-odbc-3.51.12-2.2 [root@localhost ~]# rpm -qa|grep httpd httpd-manual-2.2.3-11.el5_1.centos.3 httpd-2.2.3-11.el5_1.centos.3 httpd-devel-2.2.3-11.el5_1.centos.3 [root@localhost ~]#
CentOSでphp5.2をインストールする際には下記の記事を参考にしました。
若干やり方は変えて
# vi /etc/yum.repos.d/utterramblings.repo enabled=0
にしておいて
# yum install php --enablerepo=utterramblings
としました。こうしておけば普段のyum実行ではこのレポジトリへの取得は行いません。
shindigとpartunaを取得
OpenSocialコンテナとなるshindigと、SNSのpartuzaをsubversionから取得します。
# svn co http://svn.apache.org/repos/asf/incubator/shindig/trunk /path/to/shindig # svn co http://partuza.googlecode.com/svn/trunk/ /path/to/partuza # chown -R apache:apache /path/to/partuza/html/images/people
hostsの変更
hostsの変更は、ローカル環境にインストールする以外でも必須です。
クライアントのhosts
今回は、外部に公開せず自身のvmware上にサーバを構築するのでクライントPCのhostsも変更します。
Windows XP
C:\WINDOWS\system32\drivers\etc\hosts
MacOS 10.5.x
# sudo vi /etc/hosts # sudo dscacheutil -flushcache
Apache のヴァーチャルドメイン設定
rpmパッケージでインストールしていれば/etc/httpd/conf/httpd.confの一番最後の行あたりにVirtualHostのディレクティブがあるはずです。
# vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80DocumentRoot /path/to/shindig/php ServerName shindig ErrorLog logs/shindig.error_log CustomLog logs/shindig.access_log common AllowOverride All DocumentRoot /path/to/partuza/html ServerName partuza ErrorLog logs/partuza.error_log CustomLog logs/partuza.access_log common AllowOverride All # /etc/init.d/httpd restart
databaseをつくる
partuzaのデータベースを流し込みます。
$ mysql -u root mysql> create database partuza; mysql> alter table application_settings modify column value text NOT NULL;#アプリの永続化データ容量を増やしたい方向け mysql> \q $ mysql -u root partuza < /path/to/partuza/partuza.sql
partuzaの設定
コンフィグの設定をします。色々お好み設定が出来るみたいなので、慣れたらいじってみるといいです。
# vi /path/to/partuza/html/config.php
下記の項目を変更
'language' => 'ja_JP', 'cache_time' =>0, # 開発時にはキャッシュしたくない
shindigの設定
# vi /path/to/shindig/config/container.js
下記の項目を変更
"proxyUrl" : "http://shindig/gadgets/proxy?refresh=%refresh%&url=%url%", "jsonProxyUrl" : "http://shindig/gadgets/makeRequest "urlTemplate" : "http://partuza/gadgets/profile?{var}", // "profile"のほう "urlTemplate" : "http://partuza/gadgets/canvas?{var}", // "canvas"のほう
shindigからpartuzaのサービスを参照するように設定する
# vi /path/to/shindig/php/config/local.php
'PartuzaService', 'activity_service' => 'PartuzaService', 'app_data_service' => 'PartuzaService', 'oauth_lookup_service' => 'PartuzaOAuthLookupService', 'extension_class_paths' => '/path/to/partuza/Shindig' ); ?>
余談
以上で、http://partuza/からsnsが使えるようになると思います。
んが、アプリケーション登録時にはまった点をいくつか記載しておきます。
ローカルvmwareに作ったアプリが登録出来ない。
先に設定したApacheのVirtualHostにおいて
http://gadgets/test1/test.xml
のようなホストを作成して検証しようかと思ったのですが、これだとhost名のチェックではじかれてしまうようです。なので
http://gadgets.koshikawa.net/test1/test.xml
のように、それっぽいURLへ変更したら問題なく登録できました。(/etc/hostsにgadgets.koshikawa.netを登録してます)
shindigのbug?
OpenSocialコンテナ(つまりshindig)が返すJSの中の「&&」がたまに「&」になってしまう不都合。いろんな設定を確認したりshindigのソースを読みまくったのですがこれはshindigのbugではないかと結論付け、誰か差分とかコミットしていないかとsvn upしてみたなおりました。
r764736 | chabotc | 2009-04-14 20:03:02 +0900 (火, 14 4月 2009) | 1 line 変更のあったパス: M /incubator/shindig/trunk/php/src/gadgets/render/GadgetHtmlRenderer.php improper escaping of &'s in javascript assigned by nodeValue caused &&'s to become &'s and break all our if's :)
まさにはまっていたバグを直してくれた人が居ました。良かったです。まぁ、shindigのソース読みは無駄な時間ではなかったと言い聞かせたいと思います。
今後
ローカル環境でOpenSocialアプリの開発が出来るようになったので、開発時に気づいたことやはまったことをエントリーして行こうと思います。