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