お名前.com の共有サーバに netcommons を入れる。

入れたのは NetCommons-2.4.2.0.zip

先ず、何も対策しないでインストールしようとすると、モジュールインストール部分で固まってしまうので、webappconfigdefine.inc.php の先頭に以下を追加。これで、define.inc.php を読み込んでいれば、自動変換が OFF になる。
参考:ホーム > よくあるご質問 > インストールについて
Q.インストール途中のデータの生成でエラーが出てインストールできない。

[code lang=”php”]
ini_set(‘mbstring.encoding_translation’, ‘Off’);
ini_set(‘mbstring.internal_encoding’, ‘UTF-8’);
ini_set(‘mbstring.func_overload’, 0);
ini_set(‘mbstring.http_input’, ‘pass’);
ini_set(‘mbstring.http_output’, ‘pass’);
[/code]
さらに、webappconfigdefine.inc.php 245行目の値を 0 から増やしてチューニングしていく。少なすぎても多すぎてもモジュールインストールの失敗が多くなる。2700 ぐらいにしたら、どうやら失敗が1~2個になった。
参考:NetCommons2.4.0.0リリース
[code lang=”php”]
define(‘_MODULE_ALLUPDATE_INTERVALTIME’, 2700);  // ミリ秒 左記だと1秒間隔でリクエスト。
[/code]
あとは、ひたすらモジュールインストールで失敗したらリロードを繰り返して、10数回目で失敗が0になりインストールできた。
タイミングと運がものを言うので、もう一度、インストールできる自信ははっきり言ってないなぁ。

その後の顛末:モジュール管理が表示されない!?

管理画面に行ったら、「モジュール管理」が表示されていなかったので調査した。

  1. netcommons2_modules テーブルに モジュール管理(module_view_admin_init)は登録されている。module_id は 7
  2. modules をデータベースから参照しているところを探した。
    webapp/components/modules/View.class.php の  getModuleByRoleAuthorityId() で modules と一緒に authorities_modules_link を参照していた。
  3. netcommons2_authorities_modules_link を調査。module_id が 7 のレコードがなかった。
  4. レコード追加
    role_authority_id = 1, module_id = 7, authority_id = 5, その他の値は、他レコードのコピーで作成。

モジュール管理のアイコンが表示されました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です