□OpenPNEでSNSを構築
OpenPNE(オープンピーネ)とは、mixiのようなSNS(ソーシャルネットワーク
サービス)を構築できるフリーソフトです。この手のソフトの中では秀逸の
出来では無いかと思います。
実際に動かすには独自ドメインを持っていたほうが、メールによる各種操作
ができるのでよいのですが、一般のレンタルサーバーのユーザーでもMySQL
があれば基本的な機能については問題なく動作させることが出来ます。
また通常のSNSのようなクローズなコミュニティ以外にも、招待の必要の無い
自由参加型や、逆に管理者が招待した会員のみが参加できる限定参加型にも
設定可能なので、必要に応じたコミュニティを形成することが出来ます。
インストールの詳細は参考のURLに詳しく書いてあるのでそちらを読むこと。
仮に「4×4.jp」に設定するとします。
cd /www/4×4.jp/
mv ./html ./html.old
tar xvzf /usr/src/package/OpenPNE-2.8.0.tar.gz
cd ./OpenPNE-2.8.0
mv ./public_html ../html
cp ./config.php.sample ./config.php
chmod -R 777 var/*
として、config.inc.php と config.php(UTF8で書かれいる)を編集。
そしてMySQLにログインしてデータベースを作成。(設定編集と前後するが)
CREATE DATABASE `4x4_db` DEFAULT CHARACTER SET utf8 ;
そして、初めてならば下記のコマンドを実行
cd setup/sql/install/
mysql -u 4×4 -p –default-character-set=utf8 4x4_db < install-2.6-create_tables-mysql41.sql
mysql -u 4×4 -p –default-character-set=utf8 4x4_db < install-2.6-insert_data.sql
そしてエラーなど無ければ、セットアップURLにアクセス。
必要事項を設定したらまずは一段落。
後は好きなようにカスタマイズしましょう。
スキンやカラーリングなどはこのメモとはちょっと趣旨が外れるので割愛。
ドキュメントではcronの設定をしなさい、とあるけど、これが毎日送られて
くるのがうざいといわれかねないので注意すること。
> 0 15 * * 6????? /www/4×4.jp/OpenPNE/bin/tool_send_dairy_news.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
> 0 12 * * *????? /www/4×4.jp/OpenPNE/bin/tool_send_birthday_mail.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
> 0 6? * * *????? /www/4×4.jp/OpenPNE/bin/tool_send_schedule_mail.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
> */15 * * *????? /www/4×4.jp/OpenPNE/bin/tool_rss_cache.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
デイリーニュースは金曜日の午後3時に、誕生日のメールは12時に、
スケジュールだけは朝6時に、RSSの確認は15分毎にしてみた。
携帯などからのメールについては、サブドメインを指定して、そこに
届いたメールは全てOpenPNEに渡すようにする。
今回は「@op.4×4.jp」宛に届いたメールを全て渡すようにする。
Postfixの設定は手っ取り早くするならば、
1./etc/postfix/virtual に設定(openpneというIDにすべて配送)
> @op.4×4.jp?openpne
と追加して、
/usr/sbin/postmap hash:/etc/postfix/virtual < /etc/postfix/virtual
/usr/sbin/postfix reload
/usr/sbin/postfix flush
/etc/postfix/main.cf に
> #
> # virtual domain
> #
> virtual_maps = hash:/etc/postfix/virtual
と書いていないと意味がありません。
2./etc/aliases に設定(openpneというID宛のメールをOpenPNEに渡す)
> openpne:?”| /usr/local/bin/php /var/openpne/bin/mail.php”
として
newaliases
することを忘れずに。
補足:MySQLに外部からアクセスする場合〜複数のサーバーで運用〜
MySQLが動いているサーバーに外部から接続したい場合には、
・MySQLが動いているポートに外部からアクセスできるか?
(3306がデフォルトポート)
・MySQLのユーザー権限(GRANT)で外部接続を許可しているか?
の二点が重要になります。注意しなければいけないのは、例えローカルで
アクセスが出来ているとしても、外部接続は別途許可しなければならない
ということです。
grant select,insert,delete,update,create,drop,\
file,alter,index on *.* to ユーザー名@”%” identified by ‘パスワード’;
flush privileges;
exit
とすることで、外部ホストからのアクセスも大丈夫になります。
これにより、WEB部分については複数のサーバーに分散させることが可能です。
でもそれだけだとMySQLの負荷も上がるので、これもクラスタ構成にした方が
より負荷分散になってよいでしょう。