タグ別アーカイブ: NetCommons

ネットコモンズの話題

ロリポップでのNetCommons環境バックアップ&リストア

■ロリポップレンタルサーバでのNetCommonsバックアップとレストア

NetCommonsには管理画面にバックアップ機能がありますが、「フルバックアップ」からのリストア方法がわかりません。

いっそのことサーバ全体のバックアップ&データベースのバックアップ手順をまとめてみました。

この方法でのバックアップとリストアはネットコモンズのメジャーバージョンが同じ場合のみ成功の可能性が高いと思われます。マイナーバージョンの違いは大丈夫そうですがメジャーが違う場合はダメかもしれません。
またこの記事は開発環境から実サーバへの引っ越し作業用です。mapleやWebapp等もバックアップしていますので、引っ越し目的ではない場合、適宜不要なファイルやディレクトリは省いてレストアしてください。


◇バックアップ(保存)

1)Webサーバ上のデータバックアップ

NetCommnonsのWebサーバ上のファイルは「htdocs」「webapp」「maple」の3つフォルダに入っています。それプラスindex.php。必要があれば.htaccessも。このフォルダ3つとindex.phpをFTPでフォルダごと全バックアップします。

バックアップの際も、バイナリー転送モードを選択しておきます。

クリックで拡大

転送が完了したらバックアップしたら一応エラー無く完了したかどうかを確認しておきます。

ghs4gj room [ALL IS VANITY]

さらに念を入れてダウンロードしたフォルダーサイズとサーバー上のフォルダーサイズを比較すておきます。

この比較作業は時間がかかるので、正常終了のみきちんと確認すれば別にしなくてもいいかも・・・

FFFTPではサーバ側のフォルダーを選択し、右クリックでメニューを出し「ファイル容量計算」を実行します。

ghs4gj room [ALL IS VANITY]

と容量を表示してくれます。

全てのデータを保存し終わったら、Webサーバ上のデータはバックアップ完了です。


2)データベースサーバ上のデータバックアップ

ロリポップサーバでのMySQLデータバックアップ方法はテーブルのエクスポート機能で行います。

データエクスポートの確認を行った際のphpMyAdminのバージョンは3.2.2.1でした。

ロリポップの管理画面からデータベース管理画面phpMyAdminにログインします。

「ユーザー名」と「サーバー名」を確認して「phpMydminを開く」をクリック。

ghs4gj room [ALL IS VANITY]

phpMyAdmin画面が開くので「ユーザー名」「パスワード」を入力後、サーバ名を選択して「実行する」をクリックします。

ghs4gj room [ALL IS VANITY]

phpMyAdminのトップ画面が開いたら左側のデータベース一覧からバックアップを取りたい(エクスポート)データベースを選択します。

ghs4gj room [ALL IS VANITY]

データベースを選ぶとテーブル一覧を表示する画面が表示されるので「エクスポート」タブをクリックします。

ghs4gj room [ALL IS VANITY]

エクスポート機能の画面が表示されるとエクスポートグループ内のテーブル名選択で全てのテーブルが選択されていることを確認する。(全選択を使用すると抜けがなくて安全)

「構造」グループ内の「DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENTを追加」にチェック。

「ファイルに保存する」にチェックを付ける。

その他は画面が開いたときのデフォルトの通り。

設定内容を確認し「実行する」をクリックします。

ghs4gj room [ALL IS VANITY]

ファイルの保存確認が出るのでファイルを保存して。データベースのバックアップ完了。

ghs4gj room [ALL IS VANITY]

バックアップしたファイルが揃っていることを確認。

ghs4gj room [ALL IS VANITY]


レストア(復元)

1)Webサーバー上のデータレストア

バックアップしていたNetCommons用のファイル一式が入ったフォルダをFTPでサーバに転送します。

(バイナリ転送モードで)

ghs4gj room [ALL IS VANITY]

一度Windows機で保存したバックアップをUnixサーバーに戻すと「webapp/config/install.inc.php」のパーミッションが644になってしまうようなので444に変更します。それ以外のファイルに特に問題はないようです。

(変更しないとインストール開始画面が表示されます。)

エラー無しで全て転送し終わったらWebサーバ上のデータは復元完了です。
(バックアップの場合はバージョンの違うシステムに全てのファイルを戻さないでください。当然おかしくなります)


2)データベースサーバ上のデータレストア

新規でデータベースを作成する場合と既存のデータベースにレストアする方法があります。

既存のデータベースにレストアする場合はロリポップの管理画面からphpMyAdminの画面にログインします。


データベースを作成する場合

「バックアップを取ったデータベース名と同じ名前のデータベース」にする

「バックアップを取ったデータベースと同じ名前のサーバ」にする

「バックアップを取ったときのデータベース接続パスワードと同じにする」

とスムーズにいきます。

データベースを新規に作成します
ghs4gj room [ALL IS VANITY]

バックアップを取ったときと同じ条件でデータベースを作成します。

ghs4gj room [ALL IS VANITY]

確認が出るのでデータベース名を確認して「はい」をクリックします。

ghs4gj room [ALL IS VANITY]

パスワードの確認が出るので確認して「OK」をクリックします。

ghs4gj room [ALL IS VANITY]

正常に処理が終わればデータベースが作成されます。

ghs4gj room [ALL IS VANITY]

既存のデータベースにリストアする場合。(新規でデータベースを作成した場合もここから同様)

ロリポップの管理画面からデータベース管理画面phpMyAdminにログインします。

「ユーザー名」と「サーバー名」を確認して「phpMydminを開く」をクリック。

レストアしたいデータベースを選択します。

ghs4gj room [ALL IS VANITY]

新規のデータベースの場合、「このデータベースにはテーブルがありません」の表示が出ています。

「インポート」タブをクリックします。

ghs4gj room [ALL IS VANITY]

「インポート画面」が開きます。

「インポートするテキストファイルの位置」でバックアップしたファイルを選択して「実行する」を押すとアップロードが始まります。

ghs4gj room [ALL IS VANITY]

しばらくアップロード処理が続き、正常に処理が完了したら「インポートは正常終了しました」のメッセージが表示されます。

ghs4gj room [ALL IS VANITY]

インポート完了後左側フレームテーブル数とのテーブルリストが表示されればOKです。
ghs4gj room [ALL IS VANITY]


データベースの位置が変更になってしまった場合は「install.inc.php」のdefine(‘DATABASE_DSN’, ‘mysql://ユーザー名:パスワード@ホスト名/データベース名’);を変更すると動作しました。

パーミッションを元に戻さないとインストール画面が表示されて焦ります・・・

この方法はデータベースを新規に作成しているためサイトの引越しにも応用できそうです。XAMPPの環境が立ち上がったらおいおい実験してみます。

注)この記事はあくまでも個人での実験結果です。正確な情報ではない部分が含まれている可能性があります。

詳しい情報はもっともっと調べてみてください。

【この記事の通りにNetCommonsを始めるにはこちら】

解決できない場合は私の素人メモではなくこちらへどうぞ → 【NetCommons情報】

ロリポップでのNetCommons環境インストール1(準備&転送編)

■ロリポップレンタルサーバにNetCommonsインストール方法

ロリポップレンタルサーバー上にNetCommons環境をインストールする方法をまとめてみました。

確認した環境
PC ThinkPad Z61t WindowsXP SP3
ブラウザー Mozilla FireFox 3.6.2
NetCommons 2.2.0.1

ロリポップ側 MySQL5 phpMyAdmin 3.2.2.1
同じデータベースにWordPressがインストールされている環境


インストール前の準備

インストール前の準備は「ブラウザーの設定」と「ロリポップサーバーのphp.ini設定」の2つ

ブラウザの設定(Mozilla FireFox3の場合)

1)JavaScriptが動作するように「Javascriptを有効」にします。
「ツール」-「オプション」-「コンテンツ」
クリックで拡大
「JavaScriptを有効にする(J)」にチェックを付けて「OK」します。

2)クッキーの設定
クッキーを保存できるように設定します。
「ツール」-「オプション」-「プライバシー」
クリックで拡大
「履歴」の中の「FireFoxに(W)」コンボボックスで「l記憶させる履歴を詳細設定する」を選択します。

「サイトから送られてきたCookieを保存する(C)」にチェック。

「サードパーティのCookieも保存する(P)」にチェックし、「Cookieを保存する期間(K)」

を「サイトが指定した期限まで」になっていることを確認。

以上でブラウザーの設定は終わりです。


ロリポップレンタルサーバのphp.ini設定

ロリポップレンタルサーバのphpは初期値ではセーフモードになっています。この設定をOFFしセーフモードを解除します。

ロリポップのユーザー専用ページにログインします。

左側のメニューから「Webツール」-「php.iniの設定」をクリックします。

クリックで拡大

php.iniの設定画面が開いたら一番下の「safe_mode」を「off」にし「php.iniを設定する」ボタンを押します。

クリックで拡大

これでサーバの準備も完了です。

ウェブブラウザとphp.iniの設定は完了しています。この状態でインストールに進みます。



インストール

ファイルの転送

NetCommonsのインストールはNetCommonsのサイトからダウンロードしたファイルを解凍しそのままFTPソフトでサーバーにインストールするのみです。

ロリポップの環境では一度も問題が発生せずインストールが完了しました。

1)NetCommonsの公式ページから「コアパッケージ」をダウンロードします。

2)ダウンロードしたコアパッケージを解凍し、任意のフォルダーに入れます。

3)FFFTPを使用してファイルをサーバーにアップロードします。

このとき「バイナリー転送」モードになっていないと途中でエラーが出ます。

バイナリー転送モードクリックで拡大 を選択して 解凍したフォルダー内のhtmlフォルダー内にある

「htdocsフォルダー」「mapleフォルダー」「webappフォルダー」「index.php」をサーバーに転送します。

このとき、一気に選択せず一つのフォルダーごと転送したほうがエラーが少ないようです。
クリックで拡大

転送中にバイナリー転送モードで転送中か確認できます。

クリックで拡大

以上、準備と転送でした。下のリンクからセットアップに進めます。

解決できない場合は私の素人メモではなくこちらへどうぞ → 【NetCommons情報】

ロリポップでのNetCommons環境インストール2(NetCommonsのセットアップ編)

■ロリポップレンタルサーバにNetCommonsインストール方法

ロリポップでのNetCommons環境インストール1(準備&転送)の続きです。


NetCommonsのセットアップ

FTPによりWebサーバにファイルをアップロードしたらNetCommonsのセットアップに進みます。

該当のサーバのURLにindex.phpを付けてNetCommonsのセットアップページを開きます。

URL: “http://www.hogehoge.jp/index.php” [enter]

「NetCommons v2 インストールウィザードへようこそ」画面が表示されます。

インストール作業に使用する言語に「japanese」を選択し「次へ>>」ボタンをクリックします。

クリックで拡大

「イントロダクション」画面が表示されて説明文が表示されます。

必要なソフトウェアに関してはロリポップレンタルサーバーでは満たしているようです。

準備に関しては既に(準備&転送編で)準備済みです。

このウィザードに従ってくださいと書かれているので従って進んでみます。

「次へ>>」ボタンをクリックします。

クリックで拡大

「サイト名称、データベース、及びパス・URLの設定」画面が開きます。

ここで設定するのは「サイト名称」「データベースサーバのホスト名」「データベースユーザー名」「データベースパスワード」です。

クリックで拡大

ロリポップレンタルサーバーでのデータベース情報は次の①②③と関連があります。

クリックで拡大
設定を確認してから「次へ>>」ボタンをクリックします。

「設定内容の確認」画面が表示されるので、内容を確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「アクセス権のチェック」画面が表示されるのでエラーが無いことを確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「パス・URLのチェック」画面が表示されるので、内容を確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「データベースをチェック」画面が表示されるので、内容を確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「設定の保存」画面が表示されるのでエラーが無いことを確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「データベーステーブル作成」画面が表示されるのでエラーが無いことを確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「サイト管理者についての設定」画面が表示されるので「管理者ハンドル」「管理者ログインID」「管理者パスワード」「管理者パスワード確認」を入力し「次へ>>」ボタンをクリックします。

クリックで拡大

「データの生成」画面が表示されるのでエラーが無いことを確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「モジュールのインストール」画面が表示されるので全てのモジュールのインストールが成功していることを確認して「次へ>>」ボタンをクリックします。

クリックで拡大

「インストール完了」画面が表示されるので サイト の インストールされたサイトを見るにはここをクリックしてください。 から結果を確認します。

クリックで拡大

インストールが成功していればNetCommonsのページが開きます。

クリックで拡大

インストール完了後にwebapp/config/install.inc.phpは自動でパーミッションが変わるようです。

一応確認してみると

クリックで拡大

公開URLからhtdocsを除く方法(ルートディレクトリの変更方法)

1)「webappconfiginstall.inc.php」をFTPソフトでダウンロード

2)「webappconfiginstall.inc.php」をエディタで開き’BASE_URL’項から/htdocsを削除する

必ずUTF-8対応のテキストエディターで編集する。

define(‘BASE_URL’, ‘http://www.hogehoge.com/htdocs’);

define(‘BASE_URL’, ‘http://www.hogehoge.com’); ← 最後のスラッシュは付けない

3)FTPソフトで編集したファイルをアップロード

4)属性が644になっている可能性があるので444に変更 ← これを忘れるとインストール画面になる

5)管理者でログインし「コントロールパネル」の「モジュール管理」で「一括アップデート」を行う。

(一括アップデートを行うまでは画像などの参照先ディレクトリが違うので表示されなくなる。)

6)アップデートが終わったら/htdocsを付けない状態で表示や動作を確認する

このページに書かれていることは私の実験結果です。この手順が必ず正しいとは限りませんので色々情報収集して始めることをお勧めします。

ghs4gj room [ALL IS VANITY] 【正確な情報はこちら】

ghs4gj room [ALL IS VANITY] 【この記事の通りにNetCommonsを始めるにはこちら】

 

解決できない場合は私の素人メモではなくこちらへどうぞ → 【NetCommons情報】

ネットコモンズ – Netcommons 変更メモ(その1)

■ネットコモンズ変更メモ(その1)


何も分からない状態からネットコモンズをカスタマイズしてみたときに気づいた備忘録&メモです。

レンタルサーバー上でのバックアップとレストアが確実にできる状況を確認できたので、いよいよネットコモンズの変更に挑戦してみたいと思います。

注)
内容の正確さは全くわかりませんし、個人的なメモなので当てになるかどうかわかりません。間違えていたら教えて頂けると幸いです。

XOOPS等に比べてとにかく情報が少ないので、手探り状態です。


NetCommonsで開発時にEclipseを使ったときの問題

どうやらNetCommonsのファイル郡はBOM無しUTF-8形式のファイルになっているようです。

eclipse3.5(PHP)の日本語版を使ってみようと環境を整えましたが各分野のコンテンツ設定でUTF-8を選択し順調に行っていたかと思えばCSSファイルでBOMなしによるコード誤検出でSJISとして扱われるので全角文字がどうしても文字化けします。

Web上で色々探したのですが未だに解決できず・・・・

日本語版でunicodeに完全対応していないソフトはBOM無しUTF-8をはしばしばSJISと勘違いするという情報は何件か見つけたのでこれかもしれません。

ghs4gj room [ALL IS VANITY]

しかし

CSS以外のPHP,TEXT,INI等はOKなのにどうしてCSSだけ・・

この問題はただ単に設定ミス、オペミスの可能性も高いです

どなたか解決方法を知っていたら教えてください。


MapleとSmarty

その昔PHPが登場し始めた頃趣味程度に簡単なWebアプリケーションを組んでいたのですが、NetCommonsのコードをみて見慣れないコーディングに戸惑いました・・?

どうやら「Maple」というフレームワークと「Smarty」という仕組みを使ってNetCommonsは動作しているようです。

まずはこの「Maple」と「Smarty」という仕組みの勉強をしないといけないのかもしれません。

maple : http://kunit.jp/maple/index.html
smarty : http://www.smarty.net/manual/ja/what.is.smarty.php

参考 :
http://www.php-labo.net/tutorial/class/smarty.html
http://www.phppro.jp/school/smarty/

説明を読んでみるとコア部分の開発とデザインの開発を分離させることが目的の仕組みらしいのでそこまで深く知る必要はなさそうですが、コードの変更には必要な知識のようです。

この辺からぼちぼち勉強していきたいと思います。


SVNで全体像を追う

何をいじれば何のファイルが変更されるのかを知りたくて、TortoiseSVNで差分の管理をしてみました。

すると変更後にモジュールのアップデート(コンパイル??)を必要とするNetCommonsでは特に変更していないファイルに大量の変更が発生するようです。

始めネットコモンズ以下全てのフォルダーを対象に差分管理したところ「htdocs」は妨害が多く起こり管理不能になり、「Webapptemplate_c」は変更もしないのにsmatyがコンパイル時間でファイルを書き換えるようです。

ghs4gj room [ALL IS VANITY]   ghs4gj room [ALL IS VANITY]

コンパイル後に作成されたファイルはSVNで管理しないように管理するフォルダーを分けないと差分チェックが大変やりにくい状態になりそうです。



基本操作をマスター

NetCommonsのデザインカスタマイズやソースコードの変更をするのが目的ですが肝心のNetCommonsの操作方法が分かりません。まずはこちらから勉強しなければ・・・

マニュアル : http://www.netcommons.org/nc20/nc20_manual/japanese/index.html
http://www.netcommons.org/nc20/nc20_manual/japanese/admin_manual/index.html



NetCommons2のライセンス

NetCommons2系のライセンスはFreeBSDライセンスと公式ページに書いてあった。

そこでFreeBSDライセンスとはなにかをWebで調べてみると概ね下記のようなものだった。

FreeBSD公式ページのCopyright項より

(出典:http://www.freebsd.org/ja/copyright/freebsd-license.html )

ソースコード形式であれバイナリ形式であれ、変更の有無に関わらず、以下の条件を満たす限りにおいて、再配布および使用を許可します:

1.ソースコード形式で再配布する場合、上記著作権表示、本条件書および下記責任限定規定を必ず含めてください。
2.バイナリ形式で再配布する場合、上記著作権表示、本条件書および下記責任限定規定を、配布物とともに提供される文書 および/または他の資料に必ず含めてください。

IT用語辞典 e-Wordsより

(出典: http://e-words.jp/w/BSDE383A9E382A4E382BBE383B3E382B9.html )

オープンソースソフトウェアで使用されているライセンス体系
無保証・免責を宣言し、再配布する際に著作権表示を行なうことのみを条件とする、極めて制限の緩いライセンス。
著作権表示さえしておけば、BSDライセンスのコードを他のプログラムに組み込み、しかも組み込み後のコードを非公開にできるため、商用化のしやすいライセンスである。
また、GPLのように再配布時のライセンス条件を制限することもない。

とある。官製CMSであるNetComonnsにはふさわしいライセンスではありそうです。


サイト内で使用する画像の扱い

背景用の画像

webappstyleimagesbackgroundの下に「scroll」と「fixed」のフォルダーを作成しその中に画像を入れる
「scroll」内に入れた画像はスクロールする背景
「fixed」内に入れた画像はスクロールしない背景

モジュールやテンプレート用の画像
webappmodulespagesfilesの下に「images」フォルダを作成しその中に画像を入れる
(imagesの下にサブフォルダを作成可能)
画像ファイルを入れるのは
webappmodulespagesfilesimagesfefpic1.gif
でもソース中は

‘<{$smarty.const.CORE_BASE_URL}>/images/pages/fef/pic1.gif’

を指定すると表示が出た。どうしてフォルダ構成が違うんだろうと色々動作させてみると。

モジュールの一括アップデートを行う際「webappmodulespagesfilesimages」からinstall.inc.phpの「CORE_BASE_URL」に指定された
フォルダに画像ファイルをコピーしているようです。

その為、フォルダ構成も少し違い、またwebappフォルダの画像データを変更しても一括アップデートするまで画像は変更されないみたいです。


公式サイトにある情報からカスタマイズしてみる

情報が少ないNetCommonsですが公式サイト上に少しだけカスタマイズ方法が載っていました。

これを参考にソフトの構成を追ってみたいと思います。

1)まず変更するモジュールのテンプレートを準備するようです。
webappmodulespagestemlatesの下に変更するテンプレートを準備します。
webappmodulespagestemlatesdefault
をコピーし自分の好きな名前に変更
webappmodulespagestemlatesfef

2)データベースのconfigテーブルでconf_id=70の値をdefaultからfefに変更する
phpMyAdmin等のコンソールから該当のデータベースを開き値を変更します。

ペンのマークのアイコンをクリックすると値が編集できるようです。
ghs4gj room [ALL IS VANITY]

conf_valueを自分のテンプレートフォルダ名に変更して「実行する」をクリック

ghs4gj room [ALL IS VANITY]

これでテンプレートに自分のユーザ用テンプレートが選択されたようです。

テンプレートが変更されたら各ファイルを編集できます。

ファイルの構成を調べてみると

「page.html」から始まってその中にinclude fileとして「addblock_box.html」「footer.html」「main.html」「headermenu.html」が指定されているようです。
そこでヘッダーメニュを変更したい場合は「headermenu.html」を変更
フッター部分を変更したい場合は「footer.html」を変更
メイン部分を変更したい場合は「main.html」を変更するようです。
ページそのものの変更は「page.html」になるようです。

ユーザ用のCSSを指定したい場合は「webappmodulespagesfiles」フォルダの下にcssユーザフォルダを作成しそこに入れるようです。
webappmodulespagesfilescssfefにCSSファイルを入れることにします。
CSSのファイル名は「page_style.css」で固定のようですのでその中に記述します。
既存の部分に同じクラスがある場合は既存の部分にも影響するようです。

page.htmlを編集することで自分で作った部分とNetCommonsで作った部分を分けて編集するイメージで独自のページが作れそうな感じです。

上記をまとめると
背景画像は
webappstyleimagesbackgroundscroll
webappstyleimagesbackgroundfixed
に入れる

テンプレートやモジュール用の画像は
webappmodulespagesfilesimagesユーザテンプレート名フォルダに入れる
例: webappmodulespagesfilesimagesfefpic1.gif

ユーザーテンプレートは
webappmodulespagestemlatesユーザテンプレート名フォルダに入れる

ユーザー用テンプレートのCSSファイルは
webappmodulespagesfilescssユーザーテンプレート名フォルダpage_style.cssに記述

テンプレートの変更はデータベースの接頭語_configテーブルのID70番default_tempの値を変更する
page.html等を編集し変更を加える

これで基本的なカスタマイズはできるようです。
と思っていたらこのpage.htmlは全てのページにかかるみたいなので、共通の部分をカスタマイズする場合のみ使えそうです。

各個別のページ編集方法をこれから調査してみます。表示中の画面を得られる変数とかあればすぐに解決するのですが・・・
変数リストどこかにないかなぁ~

4/13追加
$page_idを使えば解決できそうです。

4/17追記

基本的なカスタマイズはこの方法でできそうですが、本格的なカスタマイズはwebappstylethemesの下に各テーマを作らないとダメそうです。

情報を収集しないと・・・・

Webapp以下をSVNで管理するためには一度「template_c」内のファイルを全て削除してsvnにインポートする。

チェックアウトすると「configinstall.inc.php」の読み込み専用属性がなくなっているのでプロパティーから変更する。

「template_c」以下のファイルは勝手に生成されるようなのでsvnでは管理しない

なんだか、かなりまとまりのないメモになってる・・・・