NetCommons 1.1.4をNetCommons最新版にする

1.1.4 から 2.1へアップグレード

/var/www/ にNetCommonsがあるとする。1.1.4から2.1系に移行できるとのことなので、まずはそれを行う。

1.1.4の隔離

最初に1.1.4とは別個に2.1系の最新版をインストールしなさいということなのでそうする。最初に、1.1.4を別ディレクトリに退避。

% cd /var/www
% sudo mkdir nc1.1.4
% sudo mv ./* nc1.1.4
% mv .htaccess nc1.1.4
% cd nc1.1.4
% vi mainfile.php

XOOPS_ROOT_PATHとXOOPS_URLを変更する。

// XOOPS Physical Path
// Physical path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_ROOT_PATH', '/home/www.alumni/public');
//define('XOOPS_ROOT_PATH', '/var/www');
define('XOOPS_ROOT_PATH', '/var/www/nc1.1.4');

// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_URL', 'http://www.alumni.saitama-u.ac.jp');
//define('XOOPS_URL', 'http://hogehoge.jp');
define('XOOPS_URL', 'http://hogehoge.jp/nc1.1.4');
define("XOOPS_MANUAL_URL", "http://www.netcommons.org/nc_manual");

管理者としてアクセスし、メンテナンスモード(「管理室へ」→「システム管理」→「閉鎖設定」で「はい」を選ぶ)

そして、mysqldumpでデータベースの中身を取り出しておく。

% sudo mysqldump --opt -u USER -p DATABASE_NAME > DATABSE_NAME-1.1.4.dump.sql
2.1系のインストール

/var/www以下に展開。

% cd /tmp
% sudo tar xvfz ~/NetCommons-2.1.0.1.tar.gz
% cd NetCommons-2.1.0.1
% sudo mkdir /var/www/nc2.1.0.1
% sudo mv html/* /var/www/nc2.1.0.1
% sudo mv docs/INSTALL.html /var/www/nc2.1.0.1
% cd /var/www/nc2.1.0.1
% sudo chmod 777 .
% sudo chmod 777 htdocs
% sudo chmod 777 webapp/uploads
% sudo chmod 777 webapp/templates_c
% sudo chmod 666 webapp/config/install.inc.php

http://hogehoge.jp/nc2.1.0.1/INSTALL.html にアクセスして、インストールの仕方をみる。

また、データベースを作成しておく。1.1.4では、データベースはujis(EUC-JP)でなければならなかったが、2系はUTF-8のようなので、データベースの作成の際には以下のようにしておく(~turutosiya/tech:NetCommonsでの文字化け対処方法

% mysql -u root -p
> CREATE DATABASE netcommons2 CHARACTER SET utf8 COLLATE utf8_general_ci;
> Grant ALL on netcommons2.* to 'USER_NAME'@'HOSTNAME' identified by 'PASSWORD';

http://hogehoge.jp/nc2.1.0.1/index.php へアクセスするとインストール画面になる。このとき、文字化けしてしまう場合は、.htaccessPHPの出力をUTF-8に統一するように変更する。たとえば、.htaccessで行う場合には以下のようにする。

php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output UTF-8
php_flag register_globals Off

この内容の.htaccess を/var/www/nc2.1.0.1/に置く。http://hogehoge.jp/nc2.1.0.1/index.php にて指示にしたがいインストールする。

インストール後に2.1.0.1版を閉鎖しなければいけないのだが、私の環境ではPHPのoutput handlerでob_gzhandlerが使えないという問題が発生していた。

[client XXX.XXX.XXX.XXX] PHP Warning:  ob_start(): output handler 'ob_gzhandler' cannot be used twice in /var/www/nc2.1.0.1/nc2.1.0.1/htdocs/js.php on line 90, referer: http://hogehoge.jp/nc2.1.0.1/index.php?action=pages_view_main
[client XXX.XXX.XXX.XXX] PHP Warning:  ob_start(): output handler 'ob_gzhandler' cannot be used twice in /var/www/nc2.1.0.1/htdocs/css.php on line 100, referer: http://hogehoge.jp/nc2.1.0.1/index.php?action=pages_view_main

そこで、NetCommons:FAQ:インストール終了後、ログインボタンを押下してもログインボックスが表示されない(Javascriptエラーとなる)。より

NetCommons2.0では、javascriptを多用しているため、ファイル転送時にgzip圧縮して転送しています。PHPコンパイル時の オプションに--with-zlib[=DIR]を 指定してコンパイルする必要があります(参考URL:http://jp.php.net/manual/ja/zlib.installation.php)。また、レンタルサーバ等でどうしてもPHPの設定を変更できない場合、(table_prefix)_configテーブルのconf_id=37の「script_compress_gzip」の項目のconf_valueを「0」に更新してください。その際、javascriptの読み込みに時間がかかってしまう恐れがあります(完全にjavascriptが読み込まれていない場合、同様のエラーになる可能性あり)。
※NetCommons2.1では、読み込む環境によってGzip圧縮できるかどうか確認しているため、この現象は起こらないはずです。ご安心ください。

のとおりに、gzip圧縮をOFFにした。それでも、IceweaselFirefox)だとログインできなかったので、Google Chromeを使ったところログインできた。原因は不明。

管理者としてログインし、閉鎖モードにした。

データの移行

1.xから2.1への移行方法にある移行ツールを利用して、データベースの内容を移行する。

ダウンロードしてきたものを解答。

% tar xvfz NCMigration1.0.2.tar.gz
% cd NCMigration1.0.2
% sudo mkdir /var/www/ncm1.0.2
% sudo mv ./* /var/www/ncm1.0.2
% chmod 777 /var/www/ncm1.0.2/templates_c

この後に、http://hogehoge.jp/ncm1.0.2/index.php にアクセスし、データを移行する。標準では、1.1.4版のデータベースの文字コードEUC-JPとして設定されているので、移行したデータが文字化けしているようならば、/var/www/ncm1.0.2/config.php の「define('NC1_ENCODING', 'EUC-JP');」の文字コードを修正する。私の場合は、UTF-8にしたらうまくいった。

2.1.0.1から2.1.1.0へのアップグレード

2.1.1.0、及び、FAQモジュールのリリースにしたがいアップグレードする。

NetCommons-2.1.0.1_to_2.1.1.0.tar.gzをダウンロードして、展開する。

% tar xvfz NetCommons-2.1.0.1_to_2.1.1.0.tar.gz
% cd NetCommons-2.1.0.1_to_2.1.1.0
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。

2.1.1.0から2.2.0.0へのアップグレード

NetCommons2.2リリースにしたがいアップグレードする。

NetCommons-2.1.1.0_to_2.2.0.0.tar.gzをダウンロードして、展開する。

% tar xvfz NetCommons-2.1.1.0_to_2.2.0.0.tar.gz
% cd NetCommons-2.1.1.0_to_2.2.0.0
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。

2.2.0.0から2.2.0.1へのアップグレード

NetCommons2.2.0.1リリースにしたがいアップグレードする。

NetCommons-2.2.0.0_to_2.2.0.1.tar.gzをダウンロードして、展開する。

% tar xvfz NetCommons-2.2.0.0_to_2.2.0.1.tar.gz
% cd NetCommons-2.2.0.0_to_2.2.0.1
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。

2.2.0.1から2.3.0.0へのアップグレード

NetCommons2.3.0.0リリースにしたがいアップグレードする。

NetCommons-2.2.0.1_to_2.3.0.0.tar.gzをダウンロードして、展開する。

% tar xvfz NetCommons-2.2.0.1_to_2.3.0.0.tar.gz
% cd NetCommons-2.2.0.1_to_2.3.0.0
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。

2.3.0.0から2.3.1.0へのアップグレード

NetCommons2.3.1.0リリースにしたがいアップグレードする。

NetCommons-2.3.0.0_to_2.3.1.0.tar.gzをダウンロードして、展開する。

% tar xvfz NetCommons-2.3.0.0_to_2.3.1.0.tar.gz
% cd NetCommons-2.3.0.0_to_2.3.1.0
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。

2.3.1.0から2.3.1.1へのアップグレード

NetCommons2.3.1.1にしたがいアップグレードする。

NetCommons-2.3.1.0_to_2.3.1.1.tar.gzをダウンロードして、展開する。

% tar xvfz NetCommons-2.3.1.0_to_2.3.1.1.tar.gz
% cd NetCommons-2.3.1.0_to_2.3.1.1
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。
へのアップグレード

2.3.1.1から2.3.2.0へのアップグレード

NetCommons2.3.2.0リリースにしたがいアップグレードする。

NetCommons-2.3.1.1_to_2.3.2.0.tar.gzをダウンロードして、展開する。

% tar xvfz  NetCommons-2.3.1.1_to_2.3.2.0.tar.gz
% cd NetCommons-2.3.1.1_to_2.3.2.0
% sudo cp -R html/* /var/www/nc2.1.0.1/

http://hogehoge.jp/nc2.1.0.1/index.php にアクセスし、「管理」→「モジュール管理」で一括アップロードをする。
へのアップグレード

不要なディレクトリを削除する

% cd /var/www
% sudo rm -rf ncm1.0.2
% tar cfz ~/old_version_backup_nc1.1.4.tar.gz nc1.1.4/*
% sudo rm -rf nc1.1.4/

最新版のディレクトリをトップに戻す。

% sudo ln -s nc2.1.0.1/index.php .
% sudo cp nc2.1.0.1/.htaccess .

http://hogehoge.jp/ でアクセスできるかをチェックする。

CSSの修正

CSSの修正がWebブラウザ上からはできなくなったみたい。