NetCommons2からNetCommons3への移行ツールNc2ToNc3を実験的に使ってみました。
移行ツールがNetCommons3のプラグインに同梱されたので、ブラウザ上で操作できるのかと思いましたが、Unix系のシェルコマンドを実行しなければならず、かなり敷居が高いです。途中でギブアップしそうになりました。(2018年2月12日記)
警告などが多数出て移行後の手直しが必須ですが、一応移行ツールが使えることを確認しました。
Ubuntu17.10にapache2.4.29 、PHP5.6、MySQL5.7、phpMyAdmin4.7.7を自宅PCにインストールした実験環境をつくりました。このインストールの詳細はブログに載せました。
私がLinuxに触れたのは5年以上前です。これで多分4度目のインストールですが、過去はインストールしてみただけに終わっています。Ubuntuをインストールするのは初めてです。
このUbuntu環境で、デフォルトのドキュメントルートは /var/www/html です。
ubuntuのドキュメントルートは、/etc/apache2/sites-available/
にある 000-default.conf に DocumentRoot /var/www/html と書かれています。
NetCommons2.4.2.1を /var/www/html/nc2 に、NetCommons3.1.7を /var/www/html/nc3に素直にインストールしました。
ブラウザからアクセスするURLは http://localhost/nc2/htdocs と http://localhost/nc3 です。
nc2にはさくらインターネットで運用しているnc2の内容をコピーしました。一部リンクアドレスが崩れていますが大部分は正常にアクセスできます。
Nc2ToNc3の使い方は下記URLに書かれているのですが、説明が簡略で分かりにくい難があります。
https://github.com/NetCommons3/Nc2ToNc3
移行ツール実行に書かれているのは、
cd NetCommons3のパス/app
./Console/cake Nc2ToNc3 --database NC2のDB名 --prefix NC2のテーブルプレフィックス名 --upload_path NC2のアップロードファイルフォルダーパス --base_url NC2のベースURL --nc3base NC3のベースパス
そこで参考にさせてもらったのは、
https://nc2.netcommons.org/bbgbfqcy2-18477/
https://www.akazawa.org/blogs/blog_entries/view/50/4b0920c0e8715fd8821f4e5b301fc796?frame_id=55
特に最後のパラメータ--nc3base
をどう書けばよいのか迷いました。
私の場合は、以下のコマンドでよいようです。
cd /var/www/html/nc3/app
./Console/cake Nc2ToNc3 --database nc2 --prefix nc_ --upload_path /var/www/html/nc2/webapp/uploads/ --base_url http://127.0.0.1/nc2/htdocs --nc3base /nc3
実験結果をまとめると、
(1) base_url を http://localhost/nc2/htdocs とすると、最初の段階でerrorストップします。
[base_url] => Array
(
[0] => URLの書式が不正です。URL形式で入力してください
)
これは localhost を 127.0.0.1 に置き換えると直りました。
nc2/webapp/config にある install.inc.php に BASE_URL が定義されているとのことで、install.inc.php をみると localhost と書かれているのですが、それではエラーとなりました。
(2) アップロードパス/var/www/html/nc2/webapp/uploads/
の末尾に / が無いと画像が移行されません。なお、base_url
については、最後(末尾)にスラッシュ(/)は記述しないで下さいという記述を見つけたので、付けていません。
(3) 最後のパラメータ--nc3base
は /nc3 でも /nc3/ でも / でも私の場合まったく同じ結果でした。NetCommons3を/nc31、/nc32、/nc33にインストールして3通りのパラメータを試しましたが、移行時に表示される警告等のログの内容も同じでした。私の使っていないモジュールで影響が出るのかもしれません。ドキュメントルートからの相対パスとのことなので、/nc3 とするのが無難と思いますが、これの違いがどのような影響をもたらすのか不明です。
(4) NC3のデータベースの prefix は、NC2のデータベースの prefix と同じでなくてもよいことを確認しました。
(5) 汎用データベースの内容が移行されず、空でした。
なお、
NC2のアップロードファイルの置き場所は、nc2/webapp/uploads/
NC3のアップロードファイルの置き場所は、nc3/app/webroot/files/