今日は土曜日でもあり、MODxをいじりまわしていたのですが、私の知っているCMSとはまったく違っていて、理解の追いついていな現段階での感想は、
「なんかすごい!」
そろそろ「XOOPSいじり」を始めようかと思っていたのですが、こりゃ「MODxいじり」になりそーです^^
もう少し理解が進んだら、こちらでも紹介して行こうと思いますが、現在わかっている範囲で目に付いた特徴は、
・AJAXを使っていて、コンテンツ編集が高機能。
・ページの構成は、テンプレートでページ全体を記述し、その中に「パーツ」を埋め込んでいく感じ。
・「パーツ」には、「テンプレート変数」「チャンク」「スニペット」といったものがある。これらは、すべて管理者が定義できる。
・「テンプレート変数」はブログシステムでは、よく使われるもので、テンプレートの中に特定の記法で記述しておくと、記事名とか投稿日時とかに置き換わる。 ・「チャンク」HTMLで記述された部品。例えば、Login用のサイドバーとか・・。
・「スニペット」PHPで記述された関数のようなもの。パラメータを渡すことができる。例えば、コメントフォームやログインフォームの部品など。
・プラグイン可能。(他の部品との違いがまだよくわかってません)
・モジュール可能。(プラグインとどう違うのか・・・?)
・各コンテンツは、階層構造で管理。
・バックアップ機能あり。
まだまだ知らない機能がたくさんありそうですが、玄箱コンテンツは、MODxを使って構築して行こうと思ってます。
Hug-worldの「Linuxいじり」と「玄箱自宅サーバ」の使い分けは、前者が「ブログ」中心、後者が「まとめ」といった方向になると思います。
インストールの後は、MODxの基本的なシステム設定をやってしまいます。 ブラウザから、「MODxルート/manager/」にアクセスすると、次のような画面が表示されます。

「installディレクトリが残っている」と警告が出ているので、削除しておきます。
# rm -rf install
次に日本語化します。
前回ダウンロードしてきたjapanese-euc.inc.zipを解凍して、「MODxルート/manager/includes/lang/」の下にコピーします。 上の画面の「Administration-System configuration」よりの「Site setting」タブより、
・Language: Japanese-euc
・Character Encoding: Japanese(EUC)-euc-jpを選択し、「save」します。 上の管理画面は、次のように日本語化されて、作業がやりやすくなりました。

基本設定を続けます。
管理画面「管理-MODx設定」の「サイト設定」のタブを開き、
・サイト名:momomo.homelinux.com
・公開デフォルト:yes にして「保存」します。
「フレンドリURL」というのが、静的HTML生成に関連するオプションのようです。 「フレンドリURL」タブより、
・フレンドリURLの使用:yes を選ぶと、フレンドリURLを使用した際の詳細オプション入力が現れます。とりあえず、デフォルトのまま「保存」しました。
このフレンドリURLを有効にするには、各ディレクトリにある「ht.access」という名のファイルを「.htaccess」にリネームします。 apacheの設定で、
・AllowOverrideが有効になっていること
・mod_rewriteモジュールが有効になっていること
を確認します。
基本的な設定は、以上です。 これからは、MODxの使い方を理解しながら、コンテンツを作成して行く予定です。
玄箱自宅サーバを何(CMS)で構築しようか、色々迷ってます。
とりあえず当初の予定通りxoopsを入れてみました。
インストール方法は、xoopsが使えるレンタルサーバなどに詳しい説明があるので、ここでは省略します。
(mysqlを導入していなかったので、その前にemerge mysqlしました)
それなりの重さだけれども、xoopsにするか・・・使えないこともないし・・・。公開されているモジュールも多いし・・・。 なにか吹っ切れないものがある・・・。 と ・・・
MODx???
聞きなれない名前・・・ 試しにインストールしてみたら、
これ、行けるかも。
AJAXを使っていてUIが楽しい、何よりも気に入ったのが、mod_rewriteを使った静的HTMLに対応していること。
日本語ドキュメントがほとんどないので、少し時間がかかりましたが、インストール自体は簡単です。
本家サイトから、MODx-0.9.1.tar.gzをダウンロードしてきます。
フォーラムから、EUC日本語化ファイル japanese-euc.inc.zip もダウンロード。
mysqlで、modx用のデータベースとユーザを作成して、
# tar zxvf MODx-0.9.1.tar.gz
ディレクトリMODx-0.9.1を適当な名前に変えてドキュメントルートとする。 ブラウザから、玄箱にアクセスすると
Unable to load configuration settings Please run the MODx install utility
こんな画面が出たので、install utilityをクリック。

ほう、なかなか美しい。
[Next]をクリックして、インストールを進めます。 License Agreementのメッセージの画面が出たので、
□ I agree to the terms set out in this license.
のチェックボックスをチェックして[Next]クリック。
次の画面で、New Installationを選んで[Next]クリック。
・Database Name: 用意したmysqlデータベース名
・Table prefix: modx_
・Database host: localhost
・Database login name: 用意したmysqlユーザ名
・Database password: 上のユーザ名のパスワード
・Administrator username: 管理者ユーザ名
・Administrator password: 管理者パスワード
・Confirm password: ↑と同じものを入力して、[Next]クリック。
次の画面は、そのまま[Next]クリック。
次の画面で、ファイル属性の警告が出たので、指示通り
# chmod 777 assets/cache assets/images assets/export manager/includes
# chmod 666 assets/cache/*
として、[Retry]をクリック。 チェックはすべてOKになったので、[Install now]をクリックすると・・・ インストールはうまくいったようです。 次は、システムの基本的な設定を行います。
・・・(To be continued)
USE="mysql"でemerge --newuse worldしたので、apache2、php、mysqlによるxoopsが使える環境になりました。 Webサーバを公開するにあたり、ダイナミックDNSを使うことにします。
メジャーなところで、dyndns.comに登録しました。homelinux.comというサブドメインを使ってmomomo.homelinux.comとしました。(現在は利用していません)apacheの設定を少しばかり変更します。
/etc/apache2/httpd.conf
#AddDefaultCharset ISO-8859-1
AddDefaultCharset EUC-JP
バーチャルホストの機能を使い、外からのmomomo.homelinux.comでアクセスされた時のドキュメントを/var/www/momomo下に、LANからプライベートドキュメントとしてアクセスするドキュメントをデフォルトの/var/www/localhost/htdocs下に置くことにします。
/etc/apache2/vhosts.d/00_default_vhostを編集して
NameVirtualHost *:80
ServerAdmin webmaster@momomo.homelinux.com
DocumentRoot /var/www/momomo
ServerName momomo.homelinux.com
ErrorLog /var/log/apache2/momomo-error.log
CustomLog /var/log/apache2/momomo-access.log common
ServerName kuro
DocumentRoot "/var/www/localhost/htdocs"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 192.168.11.0/24
これで、LAN内からhttp://kuro/でアクセスした時はプライベートなドキュメントに、http://momomo.homelinux.com/でアクセスされた時は公開用のドキュメントにと、振り分けられるわけです。
名前ベースのバーチャルホストを使用するには、注意が必要です。 Allow from 192.168.11.0/24とLAN内からのみのアクセスに限定しないと、ちょっとしたおまじないで、プライベートなはずのhttp://kuro/にアクセスされてしまうからです。デフォルトランレベルに登録して
# rc-update add apache2 default
apacheを起動します。
# /etc/init.d/apache2 start
次に、ルータの設定で、ポート80を玄箱に向けて、外からアクセスできるようにします。 DDNSクライアントを立ち上げるところですが、ルータにその機能があったのでDDSNの設定もルータにて行いました。 まだコンテンツまったくなしでつまらないですが、良かったら試しにアクセスしてみて下さい。(現在稼働していません)
http://momomo.homelinux.com/
パワー不足の玄箱でGentooを運用して行くには、少しでもコンパイルの速度を上げないとGentooが生きて来ないだろう、ということで・・・
ボロPC(とは言え、Pentium III 800MHz)に、コンパイルをお手伝いさせようと、前回は、PowerPC(玄箱)のコンパイル環境をPentiumeIII上に構築したわけです。
今回は、分散コンパイルさせるために、distccの導入です。
既に、玄箱には、distccは導入してあるので、ボロPCにも入れます。ついでに、ccacheも入れてしまいます。
ボロPCで:
# emerge distcc ccache
色々と試行錯誤がありましたが、最終的に次のようになりました。
玄箱側の設定:
/etc/make.confの内容:
CFLAGS="-O2 -mcpu=603e -fno-strict-aliasing -pipe -fsigned-char"
CHOST="powerpc-unknown-linux-gnu"
CXXFLAGS="${CFLAGS}"
PORTDIR=/var/portage
DISTDIR=/var/portage/distfiles
PKGDIR=/var/portage/packages
RPMDIR=/var/portage/rpm
PORTDIR_OVERLAY="/var/overlays/kurobox"
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
GENTOO_MIRRORS="http://mirror.gentoo.gr.jp/"
SYNC="rsync://192.168.11.101/gentoo-portage"
PORTAGE_TMPDIR=/var/tmp
MAKEOPTS="-j6"
FEATURES="ccache distcc"
DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
ホストの指定:
# distcc-config --set-hosts 192.168.11.101
/usr/lib/distcc/powerpc-unknown-linux-gnu-wrapperを次の内容で新規に作成する。
#!/bin/bash exec /usr/lib/distcc/bin/powerpc-unknown-linux-gnu-g${0:$[-2]} "$@"
これは、powerpc-unknown-linux-gnu-gccのようにフルネームではなく、gccと短い名前で呼ばれたときに、フルネームで呼ばれたかのように見せかけるラッパーです。
コンパイラが起動されたときにdistccを実行するように、シンボリックリンクをはります。
# cd /usr/lib/distcc/bin
# chmod a+x powerpc-unknown-linux-gnu-wrapper
# ln -s powerpc-unknown-linux-gnu-wrapper c++
# ln -s powerpc-unknown-linux-gnu-wrapper cc
# ln -s powerpc-unknown-linux-gnu-wrapper g++
# ln -s powerpc-unknown-linux-gnu-wrapper gcc
# ln -s /usr/bin/distcc powerpc-unknown-linux-gnu-c++
# ln -s /usr/bin/distcc powerpc-unknown-linux-gnu-g++
# ln -s /usr/bin/distcc powerpc-unknown-linux-gnu-gcc
デフォルトランレベルにdistccとccacheを登録しておきます。
# rc-update add distcc default
# rc-update add ccache default
ボロPC側の設定:
/etc/make.confの内容:
CFLAGS="-Os -march=pentium4 -pipe"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
GENTOO_MIRRORS="http://mirror.gentoo.gr.jp"
SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"
PORTDIR_OVERLAY="/usr/local/portage"
PORTAGE_TMPDIR=/var/tmp
MAKEOPTS="-j2"
FEATURES="ccache"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
こちらは、お手伝いをするだけなので、設定はこれだけです。
玄箱と同じくデフォルトランレベルに登録しておきます。
# rc-update add distcc default
# rc-update add ccache default
以上で、設定は終わりです。
それぞれのマシンでdistccとccacheを起動した後、玄箱側で何かをemergeしてボロPC側で、powerpc-~、cc1・・・などのプロセスが実行されれば、導入は成功です。
コンパイル環境は、ひとまず整ったので、これからは、必要なパッケージを導入して行きます。 まずは、軽いところから、ntpを。
# emerge ntp
(多少は速くなっているのかな・・・) /etc/ntpd.confの編集:
server [ntpサーバの指定] (一番近いであろうプロバイダのNTPサーバを指定しました)
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify nopeer
restrict 127.0.0.1 # LAN内からアクセスできるようにして、サービスを公開
restrict 192.168.11.0 mask 255.255.255.0
nomodify
nopeer
notrap
/etc/conf.d/ntp-clientの編集:
NTPCLIENT_CMD="ntpdate"
NTPCLIENT_OPTS=" -b -u [NTPサーバの指定]"
NTPCLIENT_TIMEOUT=30
デフォルトランレベルに登録しておきます。
# rc-update add ntpd default
# rc-update add ntp-client default
ボロPC側でも、同様の手順でntpを導入し、[NTPサーバ]指定の箇所には、玄箱のアドレスを指定して、LAN内を同期させるようにしました。
ひさびさのGentooいじりの投稿です。Gentoo玄箱は、立ち上がったものの、パッケージ導入の時間のかかること。
少しでも、このボトルネックを解消しようと、ボロPCにクロスコンパイル環境を構築して、distccを使った分散コンパイルを使用するという計画です。
なかなかうまくいかなかったのですが、なんとか動きだしたので、ご報告させていただきます。
ツールチェーンの構築は、何度か経験はあるのですが、「なんか面倒だった」という記憶だけ残っていて、すっかり忘れていました。 いろいろ調べていると、crossdevというツールがあるらしい。今回はこれを試してみることにしました。
# emerge crossdev
このツールは、コマンド一発で、ツールチェーンを構築してくれる優れものです。 まず、最初にやらなければならないのが、ターゲットマシン(すなわち玄箱)のツールチェーン環境のバージョンを調べることから。現在の玄箱にインストールされているバージョンは、次のとおりです。
gcc 3.4.4-r1
binutils 2.16.1
kernel(header) 2.4.26-r1
glibc 2.3.5-r3
次に、crossdevを使って
# crossdev -t powerpc --g 3.4.4-r --b 2.16.1 --k 2.4.26-r1 --l 2.3.5-r3
で後は、待つだけ。 のハズなのですが、configure中にエラーが出てしまうのです。ソースを見たり、検索でこんな事例はないか調べたり、まったく検討違いのことばかりの3日間。 結局、ボロPC(ホスト側)のビルドチェーンが玄箱のバージョンに対応できなかったのです。分かってしまえば、こんなもの、とほほ・・・
# emerge -uD system
を実行して、再度crossdevして、無事クロス環境の構築は完了。 crossdev、偉い! 次は、クロスでの、分散コンパイル環境の構築。
・・・(To be continued)