# Usagi Project MyNETS 1.2.0 への移行ガイド

最終更新日: 2008/08/26

## 目次

- 0. はじめに
- 1. 手順
- 2. 作業方法
  - 2-1-1. コンバート SQL の実行
  - 2-1-2. コンバートスクリプトの実行
  - 2-2. ソースコードの置き換え
  - 2-3. 設定ファイルの変更
  - 2-4. 携帯メール投稿アドレス設定の変更
- 3. MyNETSで削除された設定ファイル
- 4. MyNETS 1.2.* と OpenPNE 2.4系テーブルの違う部分

## 0. はじめに

この文書は、OpenPNE 2.4.* から MyNETS 1.2.0 への移行の手順を記載したものです。

- OpenPNE 2.6.*、2.8.* からの移行は、動作報告がされておりますが、確実に動作を保障するものではありません。
- OpenPNE 2.10.*、2.12.* からの移行は、OpenPNE のテーブル変更および絵文字処理の関係上、コンバートを行っても、すでに保存されている一部のデータが、正常にコンバートされないことがあります。

上記をご確認の上、移行を行うようにしてください。

## 1. 手順

移行は以下のような手順で進めます。

1. メインテナンスモードへ切り替え
   (config.php[define('OPENPNE_UNDER_MAINTENANCE', true);])
2. 現在のデータベースをバックアップ
3. コンバート SQL の実行
4. コンバートスクリプトの実行
5. ソースコードの置き換え
6. 設定ファイルの変更
7. 携帯メール投稿設定の変更
8. 運用モードへ切り替え
   (config.php[define('OPENPNE_UNDER_MAINTENANCE', false);])

## 2. 作業方法

### 2-1-1. コンバート SQL の実行

OpenPNE から移行するには、
setup/sql/MySQL4.*/convert/Pne2Usagi_convertSQL4MySQL4.*.sql を実行します。
MySQL のバージョンによって sql ディレクトリの下のディレクトリを選択してください。ご使用の MySQL のバージョンにあったディレクトリ以下のファイルを実行してください。

### 2-1-2. コンバートスクリプトの実行

次に、コメント集計値の計算、足跡カウントの計算とコメント番号の追加を行います。 これは OpenPNE では日記のコメントを集計するのは日記のコメントテーブルを日記 ID でカウントして数字をその場で計算していますが、 MyNETS 1.2.0 では、コメントが追加、削除されたタイミングでリアルに日記テーブルにカウントしています。 そのため、コメント数を集計して日記テーブルのコメントカウント項目へ計算した数値を保存しておきます。 また、足跡総数も同様に足跡ページを開くたびに自分が対象のテーブルを抽出して集計していますが、これも足跡データが保存されるタイミングでリアルに集計されてデータを保存するようになっております。 そのため、データコンバートのスクリプト(PHPファイル)を MyNETS 設置後一度だけ実行して数字の整合性を保ちます。 さらに、コメントに番号がつくようになっておりますので、その対応を行う必要があります。

OpenPNE2Usagi_Upgrade4diary_comment_count.php
OpenPNE2Usagi_Upgrade4ashiato_count.php
diary_comment_no_convert.php
topic_update_convert.php

上記の 4 ファイルを [OPENPNE_URL] 以下に移動してください。
http://OPENPNE_URL/OpenPNE2Usagi_Upgrade4diary_comment_count.php
http://OPENPNE_URL/OpenPNE2Usagi_Upgrade4ashiato_count.php
http://OPENPNE_URL/diary_comment_no_convert.php
http://OPENPNE_URL/topic_update_convert.php
上記のようにブラウザから直接呼び出します。
設置して呼び出す場所は通常 SNS にログインするディレクトリとなります。

※データ量が多い場合は終了まで時間がかかりますので、お待ちください。

すべての再集計が終わったら、上記 4 ファイルは削除するか別の場所へ保存するようにしてください。 一度実行すると、OPENPNE_DIR/var/log/ にログファイルが保存され、実行日時が記載されます。

### 2-2. ソースコードの置き換え

サーバ上に MyNETS 1.2.0 のソースファイルを設置します。 詳しくは、「MyNETS セットアップガイド」の「1. ファイルの設置」を参考にしてください。

MyNETS 1.2.0 では、OpenPNE からディレクトリ構成が変更され、public_html が廃止されています。確実にソースコードを入れ替えるようにしてください

### 2-3. 設定ファイルの変更

MyNETS で追加された設定ファイル(config.php)の設定項目

※config.php は、MyNETS に含まれる config.php.sample を元に変更し作成されることを推奨します。
尚 MyNETS 1.2.0 ではディレクトリの構成が変更となり、public_html が廃止されました。それにより OPENPNE_DIR 直下に conf ディレクトリが用意され、そこへ config.php を保存するようになりました。ご注意ください。

- 運用モードで HTML 中の空白改行を一部削除:
  $GLOBALS['SMARTY']['autoload_filters'] = array( "pre" => array("strip"),"output"=>array("comment") );
- 未ログイン日数を変更:
  define('LASTLOGIN_DAYS', 3);
- テーブルの PREFIX を利用する場合は、PREFIX文字列を指定:
  define('MYNETS_PREFIX_NAME','');
- どの DB モジュールを使用するか(mysql または pne):
  define('MYNETS_DB_MODULE', 'mysql');
- CAPTCHA(画像のなかの文字列をメンバーに入力させる認証方式)を使用するかどうか:
  define('MYNETS_USE_CAPTCHA', true);
- 最新日記の表示を 1人 1件とする場合は true、すべて出す場合は false:
  define('DIARY_DISTINCT_LIST',true);
- コミュニティの更新表示を 1コミュニティ 1件とする場合は true、すべて出す場合は false:
  define('COMMU_DISTINCT_LIST',false);
  ※この項目は現在未使用で予約されています。
- 外部公開日記を行う場合は true
  define('MYNETS_OPEN_DIARY', true);
- 外部公開コミュニティを行う場合は true
  define('MYNETS_OPEN_COMMU', false);
  ※この項目は現在未使用で予約されています。
- HOME のカレンダーを本日起点とする場合は true、日曜日起点の場合は false
  define('DISPAY_SCHEDULE_WEEK', false);

* 設置ディレクトリおよび設置スキンのパーミッションを 777 に変更します。
* MyNETS ではスキン画像を DB ではなくディレクトリに保存し、画面表示のレスポンスを向上させる対策を取っています。そのため画像を skin ディレクトリ以下に保存しなければなりません。
新しく自分で作成したスキン画像等をご利用になる場合は「MyNETS セットアップガイド」をお読みになり、ディレクトリ構成をご確認ください。

    $ chmod -R 777 OPENPNE_DIR/skin/*/img/

### 2-4. 携帯メール投稿アドレス設定の変更

MyNETS では、携帯機能強化とともに、メール投稿で扱える機能が大幅に強化されています。

項目 | 新形式 | 旧形式
--- | --- | ---
新規登録 / ログインURL取得 | get@MAIL_SERVER_DOMAIN | 同左
プロフィール画像変更 | pXXX-YYY@MAIL_SERVER_DOMAIN | pXXX@MAIL_SERVER_DOMAIN
コミュニティトピックのメール投稿 | tXXX-YYY@MAIL_SERVER_DOMAIN | tXXX@MAIL_SERVER_DOMAIN
コミュニティトピックのメール作成 | eXXX-YYY@MAIL_SERVER_DOMAIN | eXXX@MAIL_SERVER_DOMAIN
コミュニティトピックのメール修正 | etXXX-YYY@MAIL_SERVER_DOMAIN | etXXX@MAIL_SERVER_DOMAIN
日記メール投稿 | bXXX-YYY@MAIL_SERVER_DOMAIN | blog@MAIL_SERVER_DOMAIN
日記コメントメール投稿 | cXXX-YYY@MAIL_SERVER_DOMAIN | cXXX@MAIL_SERVER_DOMAIN
日記画像の修正メール投稿 | dpicXXX-XXX-YYY@MAIL_SERVER_DOMAIN | dpicXXX-XXX@MAIL_SERVER_DOMAIN
コミュニティの管理者の携帯での画像変更投稿 | copicXXX-XXX-YYY@MAIL_SERVER_DOMAIN | copicXXX-XXX@MAIL_SERVER_DOMAIN
空メールによる携帯アドレス設定 | mbentry@MAIL_SERVER_DOMAIN | 同左
QRコードによるコミュニティ経由新規登録用アドレス(1.2.0Nigtyで追加) | qrcXXX-XXX@MAIL_SERVER_DOMAIN | 同左
QRコードによるメンバー紹介新規登録用アドレス(1.2.0で追加;機能未実装) | qrm-XXX@MAIL_SERVER_DOMAIN | 同左

- XXX には数字。
- YYY には 12 バイトの英数字([0-9a-f]{12})。

※上記が MyNETS での携帯メール投稿用のメールアドレスです。運営していた OpenPNE の設定に追加してください。

以上でアップグレード作業は完了です。

## 3. MyNETS で削除された設定項目

- BIZ 機能は削除されましたので、下の項目はありません
  define('USE_BIZ_DIR', false);
  define('OPENPNE_WEBAPP_BIZ_DIR' , OPENPNE_DIR . '/webapp_biz');
  define('OPENPNE_MODULES_BIZ_DIR', OPENPNE_WEBAPP_BIZ_DIR . '/modules');;
- セーフモードかどうかは自動判定になりましたので、下の項目はありません
  define('MAIL_SET_ENVFROM', true);
- コミュニティに地図を表示するかどうか
  define('OPENPNE_USE_COMMU_MAP', true);

## 4. MyNETS 1.2.0 と OpenPNE 2.4系のテーブルの差異

1. 伝言板用のテーブルが追加されています。(テーブル追加)
2. 日記のコメント集計方法が変更になり、日記テーブルに数がリアルにカウントされます。(カラム追加)
3. 足跡集計方法が変更になり、足跡テーブルを常に集計せず、リアルに会員テーブルに数がカウントされます。(カラム追加)
4. 日記閲覧用のテーブルが追加されています。(テーブル追加)
5. 日記タグ用のテーブルが追加されています。(テーブル追加)
6. ランキング集計データ保存テーブルが追加されています。(テーブル追加)
   ※これは現在まだ未稼働で今後変更になる可能性があります。
7. 足跡テーブルに携帯か PC からの接続の情報が保存されるようになり、足跡一覧を見たときに携帯接続が PC 接続が判別できるようになりました。(カラム追加)
8. PC 及び携帯用のテンプレートファイルを用意することで、設定画面からメンバーが画面変更を行うことが出来るようになりました。その設定保存のため、c_member にカラムを追加、またテンプレートファイルの内容を保存する c_display_view テーブルが追加されました。
9. 退会者の管理用テーブルが追加されています。(テーブル追加)
10. 携帯の画面切り替えを管理するためのテーブルが追加されています。(テーブル追加)

- 今後もテーブルの追加及び削除、修正が行われる可能性があります。但しその場合は修正・追加一覧とコンバート用ファイルを用意して、 移行がスムーズに行えるのを確認した上でリリースいたします。
- 2.6系のテーブルでもアップグレード SQL の実行及びコンバートスクリプトの実行により、動作する事が確認されています。
- これらの運用中データベースの移行は、確実な動作を保障するものではありませんので、移行の際はバックアップを確実に行ったうえで実効してください。
- また、独自のカスタマイズでテーブル等の項目を追加したり削除している場合はそのままでは動くかどうかは分かりませんので、 各種スクリプトを実行する前に SQL の内容を確認の上ご自信の判断で移行処理を行ってください。

以上の内容を確認しながらコンバートしてください。

OpenPNE は株式会社手嶋屋の開発しているオープンソースソフトウェアの名称です。
MyNETS は、ネットを使って多くの開発者が共同で開発している Usagi Project のオープンソースソフトウェアの名称です。
プロジェクト管理者、開発者、開発協力者の情報はプロジェクトホームページをご覧ください。
Usagi Project | SourceForge.jp Usagi Project