OpenPNE

Debian GNU/Linux testingでのインストール_

先にインストールすべきソフトウェア_

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

なので、とりあえず以下をインストール。

% apt-get install apache2
% apt-get install php5
% apt-get install libapache2-mod-php5
% apt-get install php5-mcrypt
% apt-get install php5-gd
% apt-get install php-pear
% apt-get install postfix
% apt-get install mysql-common mysql-server mysql-admin

postfixとapache2の設定は、Googleを検索して設定のこと(運用方針によって全く異なるので)。ただし、apacheでは、php5を組み込んで置くこと。

% a2enmod php5

次に、インストールされたMySQLの文字コードをutf8に固定する。 /etc/mysql/my.cnfの[mysqld]という項目のすぐ下に以下の項目を書き込む。

default-character-set=utf8
skip-character-set-client-handshake

OpenPNEをダウンロードしてきてインストールをする。今回は、本体を/home/OpenPNEとし、Apacheから参照する部分を/var/www/OpenPNESNSと置くことにする。

% cd /home
% tar xvfj OpenPNE-2.4.3.tar.bz2
% cd OpenPNE
% cp -R public_html /var/www/OpenPNESNS
% cp setup/*.html /var/www/OpenPNESNS
% cp config.php.sample config.php

/var/www/OpenPNESNS/OpenPNE_Setup.htmlに従いながら、/home/OpenPNE/config.phpと/var/www/OpenPNESNS/config.inc.phpを編集する。なお、これらのファイルはUTF-8エンコーディングであるのでエディタで編集する際は注意のこと。

ファイルの編集が終わったらデータベースの構築を行う。今回はデータベース名をsns_db、そのユーザ名をsns、パスワードをsns_pwとする。

% mysqladmin -u root -p create sns_db
% mysql -u root -p sns_db \\
< /home/OpenPNE/setup/sql/install/install-2.4-create_tables-mysql41.sql
% mysql -u root -p sns_db \\
< /home/OpenPNE/setup/sql/install/install-2.4-insert_data.sql

次に、データベースのアクセス権限を設定する。

mysql -u root -p
> GRANT ALL ON sns_db.* TO sns@localhost IDENTIFIED BY 'sns_pw';
> flush privilege;
> quite

これでデータベースの設定は終わり。

/var/www/OpenPNESNS/OpenPNE_Setup.htmlに従い、Webブラウザから設定を行う。

注意:

  • PHPファイルの許可権限は604でよい。701などにすると動かない(PHP初心者だったのでこれを知らず、すごくはまった)

PNEBIZを使う_

データベースの作成をする。

% cd /home/OpenPNE/setup/sql/install
% mysql -u root -p sns_db < option-pnebiz-mysql41.sql

次に/home/OpenPNE/config.phpの下記の部分を

define('USE_BIZ_DIR', false);

define('USE_BIZ_DIR', true);

に変える。これでおしまい。

2.4.X から2.6へのアップグレード_

まずは、mysqldumpにてデータを読み出す。mysqldumpの文字化け問題は以下にしたがい回避する。

% mysqldump -u root -p DBNAME > DBNAME_YYMMDD.sql

次にソースをダウンロードしてくる。OpenPNE配布元 仮にOpenPNE本体を/var/OpenPNE/においてあるとするとき、元のソースを一応とっておく。

# mv /var/OpenPNE /var/2.4.X
# mkdir /var/OpenPNE
# mv /var/2.4.X /var/OpenPNE/
# cd /var/OpenPNE
# tar xvfj /tmp/OpenPNE-2.6.5.tar.bz2
# cd /tmp/2.6.5

OpenPNEのpublic_html以下が/var/www/SNSとして展開されているとする。2.6.5のpublic_htmlに置き換える。

# mv /var/www/SNS /var/www/SNS.2.4.X
# cp -R /var/OpenPNE/2.6.5/public_html /var/www/SNS

そして、/var/www/SNS/config.inc.phpのOPENPNE_DIRを編集する

define('OPENPNE_DIR', realpath('/var/OpenPNE/2.6.5'));

/var/OpenPNE/setup/以下にあるOpenPNE_Upgrade.htmlファイルを読みつつ、データベースのテーブルの変更を行う。Webブラウザから閲覧できるところに移しておくと便利。

# cp /var/OpenPNE/2.6.5/setup/*.html /var/www/SNS

元のソースで書き換えたところがあったら、それを新しい方にも反映させる。

OpenPNEのカスタマイズ_

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

ユーザ間でマイフレンドを承認しあうのが面倒_

koshigoe prototype:Jinrui Mina Kyodaiというスクリプトを使うと閉じた研究室で使うときに利用者にいらぬ手間を省かせることができる。

これをダウンロードする場合にはまず、Subversionをインストールしておくこと。

% svn co http://svn2.cvsdude.com/koshigoe/prototype/mod_openpne/bin/
% cd bin

EUC-JPでかかれているのでUTF-8に変換する。

% iconv -f EUC-JP -t UTF-8 tool_jinrui_mina_kyodai.php > /home/OpenPNE/bin/tool_jinrui_mina_kyodai.php
% cd  /home/OpenPNE/bin

OpenPNEの2.4.3であると、ディレクトリ構成が違うのでうまく動かない。よって、パスの部分を修正する。 この部分を

define('PEAR_DIR'  , OPENPNE_LIB_DIR . '/pear/');

このようにする

define('PEAR_DIR'  , OPENPNE_LIB_DIR . '/include/');

その後、実行。

% php5 tool_jinrui_mina_kyodai.php

2.6.5にしたらtool_jinrui_mina_kyodai.phpが使えなくなった(解決)_

エラーがでる

Fatal error: Call to undefined function cache_drop_c_member() in /var/OpenPNE/2.6.5/webapp/lib/db/friend.php on line 647
rook:/home/OpenPNE/2.6.5/bin# cd ../../2.4.5

とりあえず、昔の2.4.Xで使う。問題無くデータベースは更新される。

追記:ある方から解決法を教えていただいた。

require_once './config.inc.php';
の次の行に
require_once '../webapp/lib/util/cache.php';
を付け加える。

このようにするとちゃんと動く。ご教示ありがとうございました。

自動ログイン機能が使えない_

以下のようにすると使える。

  • Cookieを有効にする
  • 「次回から自動ログインする」をチェックしてログイン
  • OpenPNEへのブックマークをhttp://****/OpenPNE/ にする。

なお、ログアウトすると次回自動ログインしません。

詳しくはここを参照

参考_