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系のインストール
- NetCommons:ダウンロード:コアパッケージより、NetCommons-2.1.0.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 へアクセスするとインストール画面になる。このとき、文字化けしてしまう場合は、.htaccessでPHPの出力を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にした。それでも、Iceweasel(Firefox)だとログインできなかったので、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/ でアクセスできるかをチェックする。