OpenPNE@XREA

XREA+VALUE DOMAINでのOpenPNE2.2.8の設置/インストールと2.4.2へアップグレード方法(のメモ)。

MySQLのバージョンがMySQL3.xのサーバーではOpenPNE2.3.x以降は一部機能が動作しないので、必ずMySQL4.x以降のサーバーで設置する事。
各サーバーのソフトウェア情報はXREAサーバーのソフトウェア情報を参照。

2.2.8の設置/インストール
セットアップガイドのディレクトリ、ファイル構成

- OPENPNE_DIR
  ├ bin
  ├ lib          <--- OPENPNE_LIB_DIR
  ├ var          <--- OPENPNE_VAR_DIR
  │ ├ img_cache
  │ │ ├ gif [777]
  │ │ │ ├ w_h [777]
  │ │ │ ├ w_h_raw [777]
  │ │ │ ├ w76_h76 [777]
  │ │ │ ├ w120_h120 [777]
  │ │ │ └ w180_h180 [777]
  │ │ ├ jpg [777]
  │ │ │ ├ w_h [777]  
  │ │ │    ... [777]
  │ │ └ png [777]
  │ │    ├ w_h [777]
  │ │       ... [777]
  │ ├ log [777]
  │ ├ magpie_cache [777]
  │ ├ templates_c [777]
  │ └ tmp [777]
  ├ webapp       <--- OPENPNE_WEBAPP_DIR
  └ webapp_ext   <--- OPENPNE_WEBAPP_EXT_DIR

(ブラウザから閲覧可能)
- public_html (ディレクトリ名は変更可能)
  ├ config.inc.php (OPENPNE_DIR ディレクトリを指定)
  ├ index.php
     ...
OPENPNE_DIR = /virtual/account
なので、素直に設置すると以下のような構成になる。
- /virtual/account
                ├ bin
                ├ lib
                ├ var
                ├ webapp
                ├ webapp_ext
                ├ temp              *後述
                └ public_html
                   ├ config.inc.php
                   ├ index.php
                      ...

config.phpは/virtual/accountに設置。
config.phpのOPENPNE_URLは

define('OPENPNE_URL', 'http://exsample.jp/');

public_html/config.inc.phpのOPENPNE_DIRへのパスは

define('OPENPNE_DIR', realpath('../'));
require_once OPENPNE_DIR . '/config.php';
すでにpublic_htmlで他のコンテンツを設置していて別ディレクトリにアクセスさせたい場合は
- /virtual/account
                ├ bin
                ├ lib
                ├ var
                ├ webapp
                ├ webapp_ext
                ├ temp              *後述
                └ public_html
                            ├ sns
                            |  ├ config.inc.php
                            |  ├ index.php
                            |     ...
                            |
                            ├既存のコンテンツ
                              ...

と言う構成になる。
config.phpは/virtual/accountに設置。
config.phpのOPENPNE_URLは

define('OPENPNE_URL', 'http://exsample.jp/sns/');

public_html/config.inc.phpのOPENPNE_DIRへのパスは

define('OPENPNE_DIR', realpath('../../'));
require_once OPENPNE_DIR . '/config.php';
サブドメインで設置したい場合は
- /virtual/account
                ├ bin
                ├ lib
                ├ var
                ├ webapp
                ├ webapp_ext
                ├ temp              *後述
                └ public_html
                            └sns.exsample.jp
                               ├ config.inc.php
                               ├ index.php
                                  ...

と言う構成になる。
config.phpは/virtual/accountに設置。
config.phpのOPENPNE_URLは

define('OPENPNE_URL', 'sns.exsample.jp');

public_html/config.inc.phpのOPENPNE_DIRへのパスは

define('OPENPNE_DIR', realpath('../../'));
require_once OPENPNE_DIR . '/config.php';
2.2.8設置で最低限必要なconfig.phpの設定。
// Web上の絶対パス(URL)
define('OPENPNE_URL', 'http://exsample.jp/');

// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
'dsn'  => array(
    'phptype'  => 'mysql',
    'username' => 'account',
    'password' => 'password',
    'hostspec' => 'localhost',
    'database' => 'account',
    'new_link' => false,
    ),
);

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

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

// デバッグモード
define('OPENPNE_DEBUGGING', 0);

// セッション・クッキー設定
ini_set('session.gc_maxlifetime', 432000); // 5 days
session_save_path('/virtual/account/temp');

// Envelope-From ヘッダを設定するかどうか
define('MAIL_SET_ENVFROM', false);

// Web上の絶対パス
上記の通り。

// DBサーバ設定
MySQL4.x以前のサーバーでは"euc-jp"でデータベース作成、MySQL5.xのサーバーでは"utf-8"でデータベース作成。
phpMyAdminで"日本語 - Japanese (utf-8)"選択後、セットアップガイド4のOpenPNE用データベースの作成を行う。
各サーバーのソフトウェア情報はXREAサーバーのソフトウェア情報を参照。
MySQLのバージョンが3.xのサーバーではOpenPNE2.3.x以降は一部機能が動作しないので、必ず4.x以降のサーバーで設置する事。

// DB暗号化キー
適当な文字列。

// メールサーバードメイン
XREA管理画面にてCatchAll機能にてdefault@ドメインで受信できるように設定しておく。
なお、XREAではmail.phpへの転送設定が出来ないので、別途パイプ処理が必要。詳しくはジャンク参照。

// デバッグモード
セットアップ後、一通り動作確認が済んだら"0"に。

// セッション・クッキー設定
自動ログインが効かない場合があるので、セッションをサーバー上に保存するように設定する。
ディレクトリ名は適当で構わない(ここではtemp)が、パーミッションは"777"にする事。

// Envelope-From ヘッダを設定するかどうか
XREAではモジュール版PHPはsafemodeで動作するので"false"にする。

データベースの作成、各種ディレクトリ・ファイルの設置が完了したら、"OPENPNE_URL?m=setup"へブラウザでアクセスし、セットアップを行えば設置完了。
cron設定は後回しでも構わない。

2.4.2へのアップグレード/設置

  • セットアップガイドのディレクトリ、ファイル構成
  • config.phpのOPENPNE_URL
  • public_html/config.inc.phpのOPENPNE_DIRへのパス
ディレクトリ構成は2.2.8と同じなので割愛。
画像キャッシュ'OPENPNE_IMG_CACHE_DIR'以外のファイルは全て削除後、新規に設置する事。
DBのアップグレード
設置サーバーのMySQLのバージョンに合わせ
upgrade-2.2to2.4-mysql40.sql
または
upgrade-2.2to2.4-mysql41.sql
を実行。

新規設置の場合は

install-2.4-create_tables-mysql40.sql
または
install-2.4-create_tables-mysql41.sql
を実行後、
install-2.4-insert_data.sql
を実行。
各サーバーのソフトウェア情報はXREAサーバーのソフトウェア情報を参照。
2.4.2設置で最低限必要なconfig.phpの設定。
// Web上の絶対パス(URL)
define('OPENPNE_URL', 'http://exsample.jp/');

// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
'dsn'  => array(
    'phptype'  => 'mysql',
    'username' => 'account',
    'password' => 'password',
    'hostspec' => 'localhost',
    'database' => 'account',
    'new_link' => false,
    ),
);

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

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

// デバッグモード
define('OPENPNE_DEBUGGING', 0);

// Crypt_Blowfish ライブラリの旧バージョン使用設定
// 2.2以前からのアップグレードでログインできないなどの
//暗号化まわりの不具合が起こった場合はtrueに設定してください
define('OPENPNE_USE_OLD_CRYPT_BLOWFISH', true);

// セッション・クッキー設定
ini_set('session.gc_maxlifetime', 432000); // 5 days
session_save_path('/virtual/account/temp');

// Envelope-From ヘッダを設定するかどうか
define('MAIL_SET_ENVFROM', false);

// Google Maps API key
define('GOOGLE_MAPS_API_KEY', '');

// Web上の絶対パス
2.2.8での設定と同じ。

// DBサーバ設定
2.2.8での設定と同一にする。

// DB暗号化キー
2.2.8で設定した文字列と同一にする。

// メールサーバードメイン
XREA管理画面にてCatchAll機能にてdefault@ドメインで受信できるように設定しておく。
なお、XREAではmail.phpへの転送設定が出来ないので、別途パイプ処理が必要。詳しくはジャンク参照。

// デバッグモード
セットアップ後、一通り動作確認が済んだら"0"に。

// Crypt_Blowfish ライブラリの旧バージョン使用設定
アップグレード後、ログイン出来ないようであれば、"true"にする。
新規設置の場合は"false"のままでいい。

// セッション・クッキー設定
自動ログインが効かない場合があるので、セッションをサーバー上に保存するように設定する。
ディレクトリ名は適当で構わない(ここではtemp)が、パーミッションは"777"にする事。

// Envelope-From ヘッダを設定するかどうか
XREAではモジュール版PHPはsafemodeで動作するので"false"にする。

// Google Maps API key
Google Mapsを利用するにはGoogle Maps APIで設置サイトのURL('OPENPNE_URL')で登録し、GoogleにログインしてAPIキーを取得する必要がある。

アップグレードの場合、セットアップは2.2.8で済んでいるので以上で完了。
新規設置の場合は、"OPENPNE_URL?m=setup"へブラウザでアクセスし、セットアップを行えば設置完了。

その他

RSS取得で文字化けを起こす場合がある。詳しくはジャンク参照。