オープンソースの SNS エンジン OpenPNE のインストールと設定

トップページBlog › オープンソースの SNS エンジン OpenPNE のインストールと設定

最終更新日時: 2009-03-13 19:21:33

OpenPNE とは

OpenPNE とは、ソーシャルネットワーキングサービス (SNS) のエンジンです。
ライセンスは、GPL と商用ライセンスのデュアルライセンス方式が採用されています。

OpenPNE の動作環境

  • Apache 1.3.*/2.0.* 以上
  • PHP 4.3.*/5.0 以上 (ASPI 版を推奨)
    • PHP の mbstring 拡張モジュールを使用可能
    • PHP から GD ライブラリを使用可能 (JPEG/GIF/PNG サポート)
  • MySQL 4.0/4.1 以上
  • メールサーバ (携帯からメール投稿する場合)
    • Postfix 2.1.* を推奨

(OpenPNE/setup/OpenPNE_Setup.html より引用)

本稿での動作確認環境

  • OpenPNE 2.0.3
  • Sun Solaris 10 (i386)
  • Apache 1.3.36
  • PHP 4.4.2
  • MySQL 4.1.19
  • sendmail 8.13.6

ダウンロード

ファイルの設置

ファイルの設置などのセットアップ方法は、OpenPNE/setup/OpenPNE_Setup.html に詳しく書かれています。
ここでは、OpenPNE のインストール・ディレクトリ (OPENPNE_DIR) を /usr/local/OpenPNE に、公開ディレクトリ (public_html) を /usr/local/apache/htdocs/OpenPNE としてファイルを設置します。

OPENPNE_DIR /usr/local/OpenPNE
public_html /usr/local/apache/htdocs/OpenPNE

まず,ダウンロードしてきたファイルを展開します.

$ unzip OpenPNE_2_0_3.zip

次に展開したディレクトリにある public_html 以下を公開ディレクトリにコピー (移動) します.

$ mv OpenPNE/public_html /usr/local/apache/htdocs/OpenPNE

そして,それ以外のファイルを OPENPNE_DIR にコピー (移動) します.

$ mv OpenPNE /usr/local/OpenPNE

最後にパーミッションの設定をします.OPENPNE_DIR/var 以下のすべてのディレクトリに書き込み権限をつける必要があります.

$ chmod -R 777 /usr/local/OpenPNE/var

(サーバによっては権限は 777,707,701,700 などがありますので,ご確認ください.)

OPENPNE_DIR に対する設定

まず,OPENPNE_DIR に移動します.

$ cd /usr/local/OpenPNE 

ここに,設定ファイルのサンプルがあるので,これをコピーして使います.

$ cp config.php.sample config.php

最低限,設定する項目は以下のようになっています.

OPENPNE_URL: Web 上の絶対パス (URL)

ここでは,http://www.example.com/OpenPNE/ を設定します.

 6: // Web上の絶対パス(URL)
 7: define('OPENPNE_URL', 'http://www.example.com/OpenPNE/');

DSN: データベース接続情報

ここでは,

ユーザ名 openpne_user
パスワード openpne_password
DB ホスト localhost
DB 名 openpne

として設定します.

9: // DBサーバ設定
10: $GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
11: 'dsn'  => array(
12:     'phptype'  => 'mysql',
13:     'username' => 'openpne_user',
14:     'password' => 'openpne_password',
15:     'hostspec' => 'localhost',
16:     'database' => 'openpne',
17:     'new_link' => false,
18:     ),
19: );

UNIX socket を使用する場合は,以下のように指定することもできます.

15:     'hostspec' => 'localhost:/tmp/mysql.sock',

MySQL を複数インストールするなどしている場合は,このように指定することで,意図したバージョンの MySQL を使用することもできます.

ENCRYPT_KEY: 暗号キー

ここでは,ランダムに生成した

z3EwgLCYqMhXu70xtfSufIq1aVDvcMspTB73WKyOVgOomSKxNIl33I8R

を設定します.

21; // DB暗号化キー(56バイト以内のASCII文字列)
22: define('ENCRYPT_KEY', 'z3EwgLCYqMhXu70xtfSufIq1aVDvcMspTB73WKyOVgOomSKxNIl33I8R');

MAIL_SERVER_DOMAIN: メールサーバのドメイン名

ここでは,mail.example.com を設定します.

24: // メールサーバードメイン
25: // 携帯メール投稿の宛先などのドメイン名に使われる
26: define('MAIL_SERVER_DOMAIN', 'mail.example.com');

公開ディレクトリに対する設定

まず,/usr/local/apache/htdocs/OpenPNE に移動します.

$ cd /usr/local/apache/htdocs/OpenPNE

ここに設定ファイル config.inc.php があるので,OPENPNE_DIR の値を編集します.
ここでは,OPENPNE_DIR は /usr/local/OpenPNE なので,これを指定します.

20: define('OPENPNE_DIR', '/usr/local/OpenPNE');

公開ディレクトリに対する設定は以上です.

データベースの作成

MySQL に接続します.

$ mysql -u root -p

先ほど指定した DB を作成します (MySQL 4.0 の場合は DEFAULT CHARACTER SET utf8 は不要です).

mysql> CREATE DATABASE openpne DEFAULT CHARACTER SET utf8;

先ほど指定した,ユーザ・パスワードを設定します.

mysql> GRANT ALL PRIVILEGES ON openpne.* TO openpne_user@localhost IDENTIFIED BY 'openpne_password';
mysql> FLUSH PRIVILEGES;

OpenPNE で用意されている,テーブル定義・初期データの SQL 文を実行します.
SQL 文は OPENPNE_DIR/setup/sql 以下に用意されています.

$ cd /usr/local/OpenPNE/setup/sql
$ mysql -u openpne_user -p openpne_password --default-character-set=utf8 openpne < mysql_001_table_structure.sql
$ mysql -u openpne_user -p openpne_password --default-character-set=utf8 openpne < mysql_002_init_data.sql

SQL 文を実行する順番は,必ず上記の順番にしてください (MySQL 4.0 の場合は --default-character-set=utf8 は不要です).

セットアップモジュールの実行

OPENPNE_URL に ?m=setup をつけた URL にアクセスします.

http://www.example.com/OpenPNE/?m=setup

この URL には,一度セットアップを完了すると,アクセスできなくなります.
セットアップをやり直す場合は,DB を空にしてから,もう一度テーブル定義・初期データを作り直す必要があります.

OpenPNE セットアップ
(クリックすると大きく表示されます)

ここでSNS名,管理用アカウント,初期ユーザの設定を行います.
必要事項を記入してセットアップは完了になります.

OpenPNE セットアップ完了

管理画面へのアクセス

OPENPNE_URL に ?m=admin をつけた URL にアクセスします.

http://www.example.com/OpenPNE/?m=admin

トラブル・シューティング

予定を追加したときや,検索をしたとき,管理画面で操作したときなどのメッセージが文字化けする場合

OpenPNE の文字コードは UTF-8 になっているので,PHP の設定も UTF-8 にする必要があります.
php.ini や .htaccess に設定を加えましょう.

.htaccess に設定する場合
php_value default_charset               UTF-8
php_value mbstring.language             Japanese
php_value mbstring.internal_encoding    UTF-8
php_value mbstring.http_input           pass
php_value mbstring.http_output          pass
php_value mbstring.detect_order         auto
php_value mbstring.substitute_character none
php_value mbstring.func_overload        0
php_flag  mbstring.encoding_translation Off
php.ini に設定する場合
[PHP]
default_charset               = "UTF-8"

[mbstring]
mbstring.language             = Japanese
mbstring.internal_encoding    = UTF-8
mbstring.http_input           = auto
mbstring.http_output          = auto
mbstring.detect_order         = auto
mbstring.substitute_character = none;
mbstring.func_overload        = 0
mbstring.encoding_translation = Off