Posts tagged ‘openpne’

Installation of OpenPNE

Open PNEとは、自前でソーシャルネットワーキングシステムを作れるシステムです。
mixiほどデカくはなくとも、例えば近所のフットサルコミュニティとか、幼稚園ママ仲間用のや、社内グループ用などなど・・・。
そんな仲間同士のコミュニティをネット上でに作成出来るツールです。

今回は、OpenPNEという特に日本ではメジャーどころのツールを使います。

環境は

# cat /etc/redhat-release
CentOS release 5.3 (Final)
 
#httpd -v
Server version: Apache/2.2.3
Server built:   Jan 21 2009 22:01:41
 
#php -v
PHP 5.2.12 (cli) (built: Feb 16 2010 17:42:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
 
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 724
Server version: 5.0.45 Source distribution

で、Open PNE 3.4を入れます。
セットアップ手順は
OpenPNE 3.4 セットアップ手順
http://github.com/openpne/OpenPNE3/raw/OpenPNE-3.4.1/doc/ja/OpenPNE3_Setup_Guide.txt

を参考にしました。

現在の最新安定版は、OpenPNE 3.4.1だそうですのでそれを取得。

#wget http://github.com/openpne/OpenPNE3/zipball/OpenPNE-3.4.1

それを解凍して、公開フォルダ以下にシンボリックリンクを張ります。
(http://server/openpne/でweb以下をアクセスさせたいので)

#unzip openpne-OpenPNE3-48b30f0.zip
#ln -s openpne-OpenPNE3-48b30f0/web/ openpne

設定ファイルを付属サンプルを基に修正します。
とりあえずは、base_urlとmail_domainだけ。

# cp ProjectConfiguration.class.php.sample ProjectConfiguration.class.php
# cp OpenPNE.yml.sample OpenPNE.yml
# vi OpenPNE.yml
 
#とりあえず書き換えたところだけ
# SNS の URL
# URL of the SNS
base_url: "http://labs.4sure.jp/openpne/"
 
# SNS からのメール送信に使うドメイン
# Domain to use for sending e-mail from the SNS
mail_domain: "4sure.jp"

インストールコマンド実行
./symfony openpne:install
コマンドでインストールをします。
DBやユーザー等は、最初に作っておかないとダメかな?と思っていたのですが、勝手に作成してくれるようでした。

# ./symfony openpne:install
 
  Choose DBMS:
  - mysql
  - pgsql (unsupported)
  - sqlite (unsupported)
 
mysql
 
  Type database username
 
openpne
 
  Type database password (optional)
 
password
 
  Type database hostname
 
localhost
 
  Type database port number (optional)
 
 
 
  Type database name
 
openpne
 
  Type database socket path (optional)
 
 
 
  The DBMS                 : mysql
  The Database Username    : openpne
  The Database Password    : ******
  The Database Hostname    : localhost
  The Database Port Number :
  The Database Name        : openpne
  The Database Socket      :
 
  Is it OK to start this task? (Y/n)
 
Y

なんかディレクトリのchmodなどもやってくれているみたいで便利だこれは。
しかし、赤地に白文字でエラーメッセージが出た。

Couldn’t locate driver named mysql

mysqlの話なので、セットアップ手順を見返してみると、

* PHP の PDO 拡張モジュールを使用可能 (利用する DBMS のドライバも含む)

となっている。現在の環境は

#php -i
	:
PDO
 
PDO support => enabled
PDO drivers => sqlite, sqlite2
	:

あれ、mysqlが有効になっていない。
そこで調べてみると、そもそも標準で使っていたはずのphpが変な所にもう一つは言っていた。そこはphp.iniの場所が別だったらしく、全く設定が効いていなかった。

そこで色々して、標準のphp.iniを使用するようにし、php -iでPDOサポートの欄を見たら問題なさそう。

#php -i
PDO
 
PDO support => enabled
PDO drivers => mysql, sqlite
 
pdo_mysql
 
PDO Driver for MySQL, client library version => 5.0.45

そしてまたインストールコマンドを実行してみたら、今度は以下エラーが

>> plugin    installing plugin "opAuthMailAddressPlugin"
>> opPluginManager Plugin is already installed
PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 16 bytes) in /openpne-OpenPNE3-48b30f0/lib/vendor/PEAR/PEAR/Registry.php on line 1061

メモリが足りないと言ってるのだな、と思い再度php.iniを確認すると、16Mしかなかった。これをとりあえず64Mに増やそう。

memory_limit = 64M      ; Maximum amount of memory a script may consume

再度また実行すると今度は・・・。

 PDO Connection Error: SQLSTATE[28000] [1045] Access denied for user 'openpne'@'localhost' (using password: YES)

あ、やっぱりユーザーは作っておかないとダメなのね。まあ当たり前か・・・。
以下設定でデータベースを作成します。

データベース名:openpne
データベースユーザー名:openpne

mysql> create database openpne;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on openpne.* to openpne@localhost identified by 'openpne';
Query OK, 0 rows affected (0.07 sec)

これで再度実行。ついに成功した。以下メッセージが出たらOK。

 
>> installer installation is completed!

これでブラウザから以下URLを表示してみる。
(あんまりアクセス多いと制限せざるをえないのでご了承ください)

http://labs.4sure.jp/openpne/

ここで以下デフォルトアカウントでログインしてみる。

sns@examble.com
password

あれ?404エラーのようだな。権限の設定か・・・。
ちょっと調べてみると、

http://redmine.openpne.jp/issues/201

を見つけた。(redmine使ってますね)
.htaccessのmod_rewriteの設定が、とありますが、今回の場合は、.htaccessを使う設定にしていないのが原因でした。
なので、httpd.confで、openPNEを配置しているディレクトリに対して以下設定にします。
もともとは、AllowOverride Noneになっていました。

<Directory /openpne>
    AllowOverride All
</Directory>

これで動くようになりました。
あんまり無茶苦茶なことになったら制限を掛けますが、以下URLで公開しているのでもし触ってみたい方は試してみてください。
http://labs.4sure.jp/openpne/
ID:sns@example.com
PASS:password

管理画面は以下です。
http://labs.4sure.jp/openpne/pc_backend.php

ID:sampleadmin
PASS:sampleadmin

しかしmixiだなこれはw