MacでWeb開発-(9) XAMPP for MacでSNSを運営(OpenPNE)
5月 4th, 2008
OpenPNEは、PHPで記述されたMixiクローンのSNSシステムで、Apache + PHP + MySQLの環境で動作する。
アドオンによる拡張や、スキンによる表示のカスタマイズが容易なのが特徴だ。
ここでは、XAMPP for MacOS XにOpenPNEをインストールし、SNSを運用する手順を紹介する。
なお、OpenPNEは進化のスピードが速く、2008年5月4日現在、表示用HTMLを大幅に改良した2.12系の開発が進んでいる。
インストール例では、安定版の2.10.5.1を使用しているが、ゼロからインストールする場合は、2.12系でも変わらないはずだ。

使用したシステム
Mac OS X 10.5.2 Leopard
XAMPP for MacOS X 0.7.2
OpenPNE2.10.5.1
運用条件
今回は以下の設定でOpenPNEを運用する。
| Mac OS Xのユーザー名 | tomoyun |
| PukiWikiのDocumentRoot | /Users/tomoyun/Web/OpenPNE/public_html |
| ドメイン名 | sns.mydomain.jp |
データベースの準備
WordPressは、MySQLのデータベースに設定や本文を保存する。
そのための、データベース、ユーザー、パスワードを作成しておく。
今回のデータベース設定
| データベース名 | myopenpne |
| ユーザー名 | opadmin |
| パスワード | ai08sh76 |
| 暗号化キー | youaremysunshine |
※注意※ パスワードは、自分で必ずオリジナルを考えて設定すること。また意味のある単語は避け、英字と数字の8文字以上の組み合わせにすること。
データベースの作成
XAMPPの管理画面を開く。
http://localhost/
左メニューの「phpMyAdmin」をクリック。phpMyAdminの画面が開く。

(1) データベース「myopenpne」の作成
phpMyAdminのトップ画面で「データベース」をクリック。

データベースの一覧が表示される。
「新規データベースを作成する」の入力欄にデータベース名「myopenpne」を入力。
「作成」をクリック。

データベース「myopenpne」が作成され、「myopenpne」の設定画面になる。
左上の「phpMyAdmin」のロゴをクリックして、トップ画面に戻る。

(2) ユーザー「opadmin」の追加
phpMyAdminのトップ画面で「特権」をクリック。

データベースユーザーの一覧が表示される。
「新しいユーザを追加する」をクリック。

ユーザー追加画面になるので、ユーザー名、ホスト、パスワードを設定。

画面一番下にスクロールして、「実行する」をクリック。

ユーザーの追加が完了する。

画面をやや下にスクロールさせ、「データベースに固有の特権」のセクションを表示させる。
「データベースに特権を追加」のポップアップメニューから「myopenpne」を選ぶか、
空欄に「myopenpne」を入力して、「実行する」をクリック。

ユーザー「opadmin」にデータベース「myopenpne」の特権(操作権)を設定する画面になる。
「すべてをチェックする」で、すべての権限にチェックを入れて、「実行する」をクリック。

ユーザー「opadmin」の特権が更新される。

これでデータベースの準備は整った。
OpenPNEのインストール
http://www.openpne.jp/
右カラム上部の「最新版のダウンロード」をクリック。

最新安定版の「zip版ダウンロード」をクリック。ダウンロード画面に遷移し、ダウンロードが始まる。

ダウンロードが完了。

「ダウンロード」フォルダの中に「OpenPNE-2.10.5」フォルダが作成される。

フォルダ名を「OpenPNE」に変更し、「Web」フォルダの下に移動する。

「config.php.sample」を複製し、ファイル名を「config.php」に変更する。

「config.php」をテキストエディタで編集する。
・7行目の公開URLを「’http://sns.example.com/」から今回の「http://sns.mydomain.jp/」に書き換える。
———————————————————–
// Web上の絶対パス(URL)(最後にスラッシュを付けてください)
define(‘OPENPNE_URL’, ‘http://sns.example.com/’);
↓
// Web上の絶対パス(URL)(最後にスラッシュを付けてください)
define(‘OPENPNE_URL’, ‘http://sns.mydomain.jp/’);
———————————————————–
・11行目から19行目のDBサーバ設定項目を埋める。
———————————————————–
// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
‘dsn’ => array(
‘phptype’ => ‘mysql’,
‘username’ => ”,
‘password’ => ”,
‘hostspec’ => ‘localhost’,
‘database’ => ”,
‘new_link’ => false,
),
);
↓
// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
‘dsn’ => array(
‘phptype’ => ‘mysql’,
‘username’ => ‘opadmin’,
‘password’ => ‘ai08sh76′,
‘hostspec’ => ‘localhost’,
‘database’ => ‘myopenpne’,
‘new_link’ => false,
),
);
———————————————————–
・22行目のENCRYPT_KEYを今回の「youaremysunshine」設定する。
———————————————————–
// DB暗号化キー(56バイト以内のASCII文字列)
define(‘ENCRYPT_KEY’, ”);
↓
// DB暗号化キー(56バイト以内のASCII文字列)
define(‘ENCRYPT_KEY’, ‘youaremysunshine’);
———————————————————–

「メールサーバドメイン」も必須になっているが、携帯電話から投稿しないのなら必要ないので、ここでは省略する。
設定ができたら保存して終了。
varフォルダ以下をApache/PHPから書き込み可能にする
OpenPNEは、「OpenPNE/var」フォルダ以下に高速化のためのキャッシュファイルを生成する。
そのため、「OpenPNE/var」フォルダ以下をApache/PHPから書き込み可能に設定しなければならない。
OpenPNE/varフォルダを選択。

「ファイル」メニューの「情報を見る」もしくは、Command+Iキーで、varフォルダの情報ウィンドウを表示。
「共有とアクセス権」をクリックして詳細を表示。

錠アイコンをクリックしてパスワードを入力し、変更可能にする。
「everyone」を「読み/書き」に変更。
歯車アイコンを押してショートカットメニューを表示し、「内包している項目に適用」を選択。

確認ダイアログが出るので「OK」をクリック。

データベースの初期化
現状のOpenPNEでは、データベースの初期化を手動で行う必要がある。
初期化に必要なSQLは「OpenPNE/setup/sql/mysql41/install/」以下にある2つのファイルだ。

「ターミナル」で新規ウィンドウを開き、以下のコマンドを入力する。
—————————————
$ cd Web/OpenPNE/setup/sql/mysql41/install/
$ /Applications/xampp/xamppfiles/bin/mysql -u opadmin -p –default-character-set=utf8 myopenpne < install-2.10-create_tables.sql
Enter password: (opadminのパスワード「ai08sh76」を入力)
$ /Applications/xampp/xamppfiles/bin/mysql -u opadmin -p –default-character-set=utf8 myopenpne < install-2.10-insert_data.sql
Enter password: (opadminのパスワード「ai08sh76」を入力)
—————————————
(実行例)

ApacheのVirtualHostの設定
VirtualHostの設定ファイル「/Applications/xampp/etc/extra/httpd-vhosts.conf」に、OpenPNEのVirtualHostを追加する。
OpenPNEのVirtualHost
———————————————————–
ServerAdmin tomoyun@mydomain.jp
DocumentRoot /Users/tomoyun/Web/OpenPNE/public_html
ServerName sns.mydomain.jp
ErrorLog logs/sns.mydomain.jp-error_log
CustomLog logs/sns.mydomain.jp-access_log common
</VirtualHost>
———————————————————–
(設定例)


上の画面の設定は、「MacでWeb開発-(8) XAMPP for MacでWikiを運営(PukiWiki)」の設定に追記をした状態。
VirtualHostの設定の詳しい点については、以下を参照して欲しい。
MacでWeb開発-(6) XAMPP for MacでWebサイトを運営(VirtualHost)
設定が終わったら、「XAMPP Control Panel」でApacheを「Reload」する。

OpenPNEの初期設定
http://sns.mydomain.jp/にアクセスすると、OpenPNEの初期設定画面になる。
- SNS名
- 初期メンバー(1人目のユーザー)のメールアドレスとパスワード
- 管理ユーザーのアカウント名とパスワード
を、それぞれ設定し、「セットアップ実行」をクリック。

セットアップ完了画面になる。
「ログインページへ」をクリックすると、ユーザーのログイン画面に、
「管理画面へ」をクリックすると、SNSシステムの管理画面に行く。

ユーザーのログイン画面「http://sns.mydomain.jp/」。
セットアップ画面で入力した「初期メンバー」のメールアドレスとパスワードを入力して、「ログイン」をクリック。

SNSのホーム画面になる。
使用方法はMixiとほぼ同じだ。

こちらは管理ユーザーのログイン画面「http://sns.mydomain.jp/?m=admin」。

ログインすると、メンバー管理や、機能の拡張、デザインの変更などができる。

cronによる定期実行の設定
OpenPNEでは、cronを使って、毎日ユーザーに更新情報メールを送ったり、数十分おきにRSSを更新できる。
そのためには、cron用の設定作業が必要になる。
設定ファイル「crontab」の作成。
テキストエディタで以下の内容のファイルを作って、「/Users/(ユーザー名)/etc/crontab」に保存する。
今回は「/Users/tomoyun/etc/crontab」となる。
フォルダ「etc」(/Users/(ユーザー名)/etc)がない場合は作成しておく。
crontabの内容
————————————————————
OPENPNE_DIR=/Users/tomoyun/Web/OpenPNE
BIN_PATH=/Applications/xampp/xamppfiles/bin
# Send notify mail
00 6 * * * root sh $OPENPNE_DIR/bin/tool_send_daily_news.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
00 6 * * * root sh $OPENPNE_DIR/bin/tool_send_birthday_mail.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
00 6 * * * root sh $OPENPNE_DIR/bin/tool_send_schedule_mail.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
# Update RSS
*/20 * * * * root sh $OPENPNE_DIR/bin/tool_rss_cache.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
————————————————————
(作成例)

環境変数「OPENPNE_DIR」のユーザー名は、自分の環境に合わせて変更する。
すでにcrontabがある場合は、それに追記するようにする。
次に「ターミナル」で新規ウィンドウを開いて以下のコマンドを入力する。
————————————————————
$ chmod +x Web/OpenPNE/bin/*.cron
$ crontab etc/crontab
————————————————————
(実行例)

確認は以下のように入力する。
————————————————————
$ crontab -l
OPENPNE_DIR=/Users/tomoyun/Web/OpenPNE
BIN_PATH=/Applications/xampp/xamppfiles/bin
# Send notify mail
00 6 * * * root sh $OPENPNE_DIR/bin/tool_send_daily_news.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
00 6 * * * root sh $OPENPNE_DIR/bin/tool_send_birthday_mail.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
00 6 * * * root sh $OPENPNE_DIR/bin/tool_send_schedule_mail.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
# Update RSS
*/20 * * * * root sh $OPENPNE_DIR/bin/tool_rss_cache.cron $OPENPNE_DIR/bin/ $BIN_PATH/php
————————————————————
(実行例)

これで、SNS運営の基本設定が終わった。
OpenPNEは非常に細かいカスタマイズが可能になっている。詳しくは、OpenPNEのフォルダに含まれている
「セットアップガイド」OpenPNE/setup/OpenPNE_Setup.html
を参照して欲しい。
また、OpenPNEのホームページにも開発者向けの情報が含まれており、複数サーバによる分散や、ほかのWebアプリケーションとのID連携についても書かれている。
以上。
関連記事
- MacでWeb開発-(1) XAMPP for Macの環境設置
- MacでWeb開発-(2) XAMPP for MacにPostgreSQLを追加
- MacでWeb開発-(3) XAMPP for MacのPHPの環境設定
- MacでWeb開発-(4) XAMPP for MacのApacheの設定確認
- MacでWeb開発-(5) XAMPP for Macの管理画面へのアクセス制限
- MacでWeb開発-(6) XAMPP for MacでWebサイトを運営(VirtualHost)
- MacでWeb開発-(7) XAMPP for Macでブログを運営(WordPress)
- MacでWeb開発-(8) XAMPP for MacでWikiを運営(PukiWiki)
- MacでWeb開発-(9) XAMPP for MacでSNSを運営(OpenPNE)
- MacでWeb開発-(10) XAMPPにQuictyフレームワークを設置
- Macを買ったら入れるソフト- (5) UNIX環境編
- MacPortsの使い方














