NetCommons2

私のHPはCMS(Contents Management System)であるQHM(Quick Homepage Maker)を使用してつくっています。(追記:2017年4月wordPressに移行)
最近になって国立情報学研究所が作ったNetCommonsというフリーのCMSソフトがあることを知りました。学校関係でかなり広く使われています。
お知らせ、掲示板、登録フォーム、汎用データベースなど多くのモジュールが予め用意されており、私の属するグループのHPで採用しようと考え、このところ、いろいろ使い方の試行を行っています。
誰でも簡単にホームページを作れるというのがうたい文句ですが、管理者にとってはそれほど簡単でないことが分かってきました。(2013年8月10日記)

課題・問題点は

  • 動作がやや重く、ページ移動が遅い。
  • NetCommons内蔵のバックアップ機能の信頼性が不足。
  • お知らせモジュールのテキストにワードの文章をコピーペーストで入れて決定ボタンを押すとエラーになる。-書式設定を解除すると避けられるが、うっかり仕勝ちである。(QHMではエラーしない。ホームページビルダーでは注意しないとコードが汚くなる。)

一方メリットは

  • 解説書がある。オンラインマニュアルも充実している。
  • 国立研究所がつくっているので、長期のサポートが期待できる。
  • 多種のモジュールが予め用意されている。

NetCommonsとレンタルサーバー

さくらインターネットのベーシックプランとロリポップのロリポプランにインストールしてみました。NetCommonsは2.4.1.0、試行時期は2013年7月末です。

さくらインターネットではphpが5.2.17(推奨版)の場合 今のところ問題なく動作しています。動作を少しでも速くしたいと思い、5.3.27や5.4.17を試してみました。
5.4はエラー多発でインストールできませんでした。(公式ページに2013年8月1日現在未対応と書かれているので、これはやむを得ません。)
5.3は正常にインストールできたように見えましたが、更新再表示させるとページのレイアウトが崩れ、ログインして管理ページに行くとアイコン群が横並びから縦一列に変わり、クリックに応答しなくなってしまいました。
さくらのMySQLサーバのバージョンは 5.5.28-log、MySQL クライアントのバージョンも 5.5.28でした。

ロリポップの場合、php5.4に設定するとエラー多発でインストールの初期画面が表示できません。php5.2と5.3では動作しました。しかし、管理(コントロールパネル)のバックアップ機能でフルバックアップを行うとSQL errorが3個発生して正常終了しないという問題が生じます。php.iniの設定を変えて解決したように見えましたが、勉強のため、バックアップリストアを行ったところ、またSQL errorが出る状態に戻り、php.iniの設定ではエラーが消えません。ルームのバックアップは出来て正常終了し、フルバックアップもファイルが作られるところまでは進むので、何とか使用できますが、すっきりしません。現在はphp5.3を用い、php.iniを一応下記の設定に変えています。

  • mbstring language を neutral→japanese どちらでもよさそう
  • internal-encoding を 未設定→UTF-8
  • default charset を 未設定→UTF-8 UTF-8にすると検索結果が表示できない
  • upload_max_filesize を 2M→20M

ロリポップのMySQLサーバのバージョンは 5.6.11、MySQLクライアントのバージョンは5.1.34でした。

NetCommonsのバックアップ・リストア

NetCommonsの管理(コントロールパネル)のバックアップ機能を使ってルームのバックアップが取れます。tar.gz形式のファイルが作られますが、これはサーバー上にあります。バックアップ画面上で、ファイルをクリックするとPCのローカルディスクにダウンロード出来ます。
ところが、ダウンロードして保存しておいたファイルをもう一度、「バックアップファイルの追加」をクリックしてサーバーにアップロードしようとすると、成功するときもありますが、タイムアウトになることが多いのです。ファイルのサイズが大きいと大抵失敗します。 このため、NetCommonsのバックアップ機能は余り信用できません。そこで、うまく行かない場合の対策としてバックアップリストアには別手段を用意するべきです。

概略以下の手順でリストアできます。

  • 先ずサーバにアップロードしたファイル一式をFTPソフトで、全部ダウンロードします。FTPソフトには 転送に失敗したファイル名を表示できるFileZillaを使用しました。
  • 次にデータベースのバックアップを取ります。
    レンタルサーバのユーザー専用ページ(さくらインターネットの場合サーバコントロールパネル)にログインしてデータベースの設定を選び、phpMyAdminにログインします。NetCommonsに使用しているデータベースを選び、エクスポートのページで「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENTを追加」にチェックを入れてエクスポートします。
    データベースのNetCommons用の接頭語の付いたテーブルを全部エクスポートします。infomation_schemaはエクスポート不要です。

NetCommnsのバックアップ機能でフルバックアップが取れる場合は、これをPCにダウンロードしておきます。+Lhacaを使ってtar.gz形式(圧縮形式tgz)のファイルを解凍するとNetCommonsのファイル一式とデータベースのエクスポートファイルbackup_full.sqlがあります。ただし、このファイル一式にはconfフォルダーのファイルなど一部のファイルが含まれていないので リストアの際インストール用のファイルをまずアップロードし、その上にバックアップファイルを上書きする様にする必要があり、二重手間になります。

  • NetCommonsをリストアします。
    ダウンロードしたNetCommonsのファイル一式をFTPソフトでアップロードします。FTPソフトとしてはFileZillaか、より高速のWinSCPを使用します。
    下記の2つのファイルのパーミッションを644から444(ライト禁止)に変えます。

    • webapp/config/install.inc.php
    • htdocs/.htaccess (このファイルは固定リンクを有功にしたとき作られます。)
  • 次にバックアップしておいたデータベーステーブルをphpMyAdminを使用してデータベースにインポートします。

これで、トップページにアクセスすると元通り復旧しているはずです。

NetCommons2.4.20へのアップデートとPHP5.4対応

NetCommonsのユーザコンファレンス2013に行ってみたところ、8月末にアップデートしてPHP5.4対応になるとの話が有りました。少し遅れましたが9月9日に2.4.20がリリースされました。PHP5.4には暫定対応で完全ではないようですが、アップデートしてみました。
さくらインターネットで、PHPを5.3や5.4に切り替えてみたところ、残念ながらレイアウトが崩れ、管理のアイコンが左一列になってクリックしても反応しないという現象は改善されません。しかし、データベースの内容が破壊されたわけではなく、PHPを5.2に切り替えると元通り正常に動作します。また、ロリポップではこの現象を生じないので、何か設定に問題があるのではないかという気がしてきました。

<?php phpinfo() ?>と一行書いたファイルをPHPini_check.phpなどの名称でインストール先に保存し、これをブラウザで呼び出すと、PHPの設定パラメータ一覧が表示されます。PHPの設定内容をこれで確認し、PHP5.2.17とPHP5.4.17の場合を比較してみたところ、PHP5.4.17ではdate.timezoneがno valueで、warningが表示されていました。
そこで、PHP.iniにdate.timezine = Asia/Tokyoを追加したところ、PHP5.4でも正常表示されるようになりました。5.2より、動作が速くなる印象です。

現在のPHP.iniは下記です。(;はコメント行なので無いのと同じです)

memory_limit = 128M
post_max_size = 100M
upload_max_filesize = 80M
;default_charset = UTF-8  これを有効にすると会員の検索が出来ません。
mbstring.language = Japanese
;mbstring.language = neutral  Japaneseでなくneutralでも動作します。
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none
mbstring.func_overload = 0
;mbstring.strict_encoding = Off
;magic_quotes_gpc = Off
;short_open_tag = Off
;safe_mode = Off
date.timezone = Asia/Tokyo

(2013年9月19日記)

NetCommonsその後

私の所属グループが借りているさくらインターネットスタンダードのサーバ機器が2014年1月下旬に更新され、かなり性能が向上しました。
変更前

CPU 	Intel(R) Pentium(R) M processor 2.00GHz
メモリー容量 	2GB

変更後

CPU 	Intel Xeon E312xx (Sandy Bridge)
メモリー容量 	18GB

NetCommonsの動作速度が明らかに速くなりました。

これに力を得て、2月にはHPBで作っていたホームページの内容を全部NetCommonsに移し終えて、NetCommonsに移行しました。

その後、大きな問題は生じていません。しかし、以下のような操作ミスでトラブルになったことが2度あります。
一つは、日誌モジュールを削除しても新着情報から、その項目が消えてくれないという問題です。「お知らせ」として用いていた日誌モジュールをうっかり削除してしまい、もう一度モジュールを追加して内容を再構築したところ、新着情報に削除した内容と再記載した内容が2重に表示されてしまいました。削除してもデータベースに項目が残っているためで、消すには直接MySQLデータベースの2重になった項目を消すしかないことが分かりました。
汎用データベースを使って講演会案内を載せていますが、セミナーの通知を早く載せすぎて、新着情報の古いところに表示されるようになったので、これをトップに持ってくるため、セミナーの通知を新規に再登録して、古いものを汎用データベースから削除してみました。この場合は、新着情報から古い情報が消え、日誌モジュールのような問題は生じません。

もう一つは、システム管理で、「ログインと新規登録でSSLを有効にする」を「はい」にして、ログイン出来なくなったことです。
これは、NetCommons 上では打つ手が無く、さくらインターネットのコントロールパネルに入り、phpMyAdminを使ってエクスポートしてあったMySQLのバックアップをインポートし直して復旧させることができました。
その後、このブログにより、もっと簡単な方法を知りました。
NetCommonsに使用しているMySQLデータベスのconfigテーブルの中を表示させ、conf_name欄の値がuse_sslのレコードを探し、conf_value欄の値を1から0に変更することで元の状態に戻り、再びログインできるようになります。

共有SSLしか使えない環境では、SSL使用時のURLとSSL不使用時のURLが大きく違う(https:とhttp:だけの違いではない)ためログインだけSSLを有効にするのは無理と考えるべきでしょう。

(2014年8月15日記)

Topに戻る

技術情報へ戻る