Chyrp メモ
次期主力ブログツールとして、Chyrpを第一候補に挙げ、様々な状況を確認して、問題無ければ(もしくは、代替可能ならば)、Blosxomから乗り換えようと画策中。
とりあえず、年内(2009年)に確認できれば良いか、というスパン。
…ではあったのだが…
2009年年末での状況
下記の記事は、それまで使っていたBlosxomから現在のWordPressに乗り換えるまでの苦悩と葛藤…という仰々しいモノではないが。
当時、自分は次にTumblelogに取り組みたいと思っていた。勿論Tumblrをせっせと使っていたが、そうではなく、内製?できないものかと。
結論から言うと、ローカルのXAMPPでは、テンプレートのstrftimeでの日本語ロケールで文字化けが起こっている以外、まぁ、問題無く動くが、実際にレンタルサーバでは、インストールすらできない状況。
理由は、PHPのバージョン差異から…だと思われる…
timezone_identifiers_list関数が、レンタル鯖のPHPのバージョンでは動かないためではないかというのが結論。
残念ではあるが仕方無い。
導入理由
例えばWARPを利用しての結果だったらまだしも(Chyrpは入っていない筈)、2年程前にMovable Type・MODx・WordPress・Geeklogあたりをインストールしてみたのだが、どうにもしっくり来なかった。
複数ユーザの管理、当時はまだ納得できなかったRDBの利用、Ajaxの挙動、重厚なシステム、いやCMSまでは必要無いんですが…等々。
その様な中でChyrpを知ってインストールしてみたのだが、まだ導入には早いかな、という印象だった。
とは言うものの、割とシンプルな構成だったので、Blosxomの後釜としては面白いのではないかと思った。
で、今回1年以上経って改めて最新版を試してみたら、何とかなるかもしれない…と思ったので、今回本格的に調査していこうかと思った次第。
2009/05/16
要求定義 #1
最新版(2009年5月)のv2.0rc3で遊んでみた。
現在の他Webサービスの更新システムは、テキストファイルではなく、MySQLへの出力に変更する。
Chyrpでpost後のテーブル更新状況を見た結果、おそらくは直接SQLを発行しても整合性に問題の無い状況は可能。
ブログだけでなく、ページの概念がある。
多少はCMSの概念があるみたいで、しかも階層化できた。
なので、他Webサービスの更新状況をページで管理する方法がある。
一方で、Chyrpのpostのオプションに「Pinned?」があり、ONにしておくと、最新更新状況として常に第一ページに表示されるので(多分)、こちらでも管理できる。
また、ページの概念があるので、Timelineを完全にコントロールできるのではないかという予感。(現在は別フレーバーでの管理)
デザインが…
かと言って、Blosxomみたいに簡単に手を付けられない状況。
しかしながら、複数テーマの管理が簡単なので、気が向いたら切り替え、という事ができる。(Blosxomは基本的には複数のテーマを管理しづらい)
元々Chyrpを第一候補として挙げたのは、「Tumblrクローン」という認識だった。
なので、自分のTumblrからの部分的な移行を考えている。
その際、Tumblrでは「ここ、ちょっと…」という部分をChyrpでは実装する事ができる。
…理屈では。
フェザー、および、MySQLへの格納方の変更等々、ナカナカタイヘンかと思うが。
moreのモジュールが変。
URLエンコードで引数の&が&に変換されている。
…までは分かるが、何処に手を付ければ良いのだろうか、と。
v2.0rc3と心中するならばともかく、アップデート時はタイヘンだろうなと。
おそらくは将来俺様システム用にガラパゴス化したフェザー・モジュール・テーマと上手く合致するかどうか。
なので、データ保護の観点からMySQLとのimport・export用のスクリプトが早い段階から必要かと思われる。
これはMySQLの機能を使うのではなく、あくまでもinsert文を生成するスクリプトにしたいなぁと考えている。
ネイティブな機能を使わないので無駄なコストだろうけど。
えっと、自分全くMySQLの運用コマンド知りません…
この辺の勉強も兼ねて色々と。
以上要求定義のレベルを超えているのもあるが一応。
2009/05/16
要求定義 #2
ささやかな、それでいて無意味な抵抗をしてみたいと思う。
BlosxomとChyrpを並列で使用して、データ入力はBlosxomとして、BlosxomのデータをChyrpにinsert/updateするスクリプトを書き、Chyrpではデータ入力を行わない。
…理屈では可能だが、実際にスクリプトを書いて動かしてみるまで可能かどうかは不明だが。
なのでメインで使用するのは今後もBlosxomになるが、メインのURLで見るのはChyrpになる。例えば、http://morry.duelist.orgはChyrpだが、http://morry_blox.duelist.orgはBlosxom、みたいな。
理由だが。
ブログツールを乗り換えた場合、過去のシステムやデータは消してしまうか、「こちらは更新されません。○○に変えました。以後、こちらへ」みたいなサイトが多い。
当初は自分も「移行」というイメージがあったのだが、何かそれって…と。
あるいは新システムにデータ移行するヒトも居るかもしれない。何を隠そう、80%以上のデータはコンバートしていないが、ワタシがそうだったりする。
Chyrpを使うにしてもそれはそれとして、現状ではテキストエディタで入力する方がフォームで入力するより楽だし、何よりも手元にデータが残る。
逆に言うと、自分はRDBを信用していないとも言える。と言うか「異質」なんだよなぁ…UNIX環境とSQLの考え方って…なんて言ってるのは自分だけだと思うが。
この構想で精神的に抵抗があるのは、検索サイトに同じ記事が複数箇所登録されてしまう可能性がある事か。
なのだが、例えばWikipediaは複数サイトで引っかかるし、ソーシャルブックマーク関連で本文タイトル+記事要約が複数引っかかるケースもあるので、今はそれ程気にしなくても良いのかもしれない。…と自分を納得させてみる。
2009/05/26
ローカルの開発環境としてのXAMPP
それまでは2007年12月時点でのversion 1.6.5を使っていたのだが、今回、version 1.7.1に変えてみた。
いや決してMySQLのパスワードを忘れたので、クリーンインストールしようと思った訳では無いですが。
とりあえず単純にインストールした上で、下記の変更を実施。
ApacheのDocumentRootの変更
2箇所httpd.confを修正。
: DocumentRoot "X:HOGE" : <Directory "X:HOGE"> :
以降、X:HOGEがhttp://localhostになる。
および、XAMPPのトップ画面?(http://localhostでの第一画面)を表示させるために、XAMPPインストール先のhtdocsディレクトリ配下をX:HOGEへ移動させる。
既存環境を稼動させるための対応
BlosxomとWebサービス更新状況を動かすための設定に関して。
- XAMPP Windows版アドオンのPerl 5.10.0-2.2.11の導入。
- Jcode.pmのコピー。 Blosxomのtaggingで使っているっぽいので。
-
PEARについては微妙。
go-pear.pharがどうのこうのと言う情報が飛び交っているが、いずれにせよ、上手く行ってない。
結局、明らかに自分が使っていると理解しているIT_Templateを旧XAMPPのディレクトリから新XAMPPへのコピーで対応。
とりあえず動いているので良しとする…
2009/05/16
Chyrpインストール
MySQLでのユーザ・データベース作成、インストールという順序になる。
初回インストール
まず、MySQLでのユーザを作成して、(面倒なので)ユーザ名と同一のデータベースを作成し、全ての権限を与えておくオプションをONにしておく。
Chyrpに限らず、このテのBlog・CMSツールは概ねこの手順になるが、モノによっては設定ファイルを別途作成する必要がある。
これは、設定時の画面入力項目を別途ファイルに記述しておく、みたいな。
次にChyrpのインストール。
- Database Setup
Host・Username・Password・Databaseは先のMySQLで設定した情報を設定。
Prefixは適当に。(以下、”chyrp_”を設定している前提) - Website Setup
適当に。
ただ…GMT+9の設定で、文字化けしているのが気になっている。
これはインストール後にも影響を与えていて、日付関連が文字化けしている。今後の調査項目であるが。 - Admin Account
通常利用するChyrpへのログインの設定。
まぁ適当に。
反則っぽいインストール
と言うか、インストール後に「クリーンな状況にしたい」という要求はあるのではなかろうか?
…という場合についてのメモ。
まず、MySQLからChyrp用のユーザ・データベースの削除を行ない、改めてユーザ・データベースを作成。
次に、Chyrpをインストールしたディレクトリから下記のディレクトリ・ファイルを削除して、Chyrpのインストールを行う。
尚、この場合、モジュールその他の設定情報も全て削除される。
- $CHYRP/uploads
削除なりバックアップを取るなり…
…なんだろうか? 大量にデータを突っ込んでいないので不明 - $CHYRP/includes/config.yaml.php
モジュールやフェザーの設定ファイルっぽい - $CHYRP/includes/caches
消さなくても影響は無いみたいだが一応
普通、こういう事をやろうとするヒトは居ないと思うが一応。
および、バージョンが上がれば、どうなるか分からない。
2009/05/16
Chyrpのデータベース初期状態
下記のテーブルがある。シンプルだ…
- chyrp_groups
- chyrp_pages
- chyrp_permissions
- chyrp_posts
- chyrp_post_attributes
- chyrp_sessions
- chyrp_users
例えば、Modulesを追加した場合、テーブルでは管理せず、$CHYRP/includes/caches/twig_*.cacheに情報を格納している模様。
次に、1件のログのポストを行った場合、[chyrp_posts]・[chyrp_post_attributes]に情報が書き込まれる。
[chyrp_posts]にはいわゆるヘッダ情報とでも言うか、[chyrp_post_attributes]には本文。
以下は[chyrp_posts]の情報。
- id
auto_increment - feather
利用したフェザー。 - clean
タイトル? [chyrp_post_attributes]にも抱えている。 - url
入力時の[Slug]じゃないかと。 未入力時、本文タイトルがそのままURLになるための対応かと。 - pinned
入力時の[Pinned?]。
先頭に出すか? - status
入力時の[Status]。 - user_id
[chyrp_users].[id]に対応しているのではないかと。 - created_at・updated_at
[created_at]は初回登録時の情報、[updated_at]は修正後の情報が格納される。
表示順は[created_at]を基準にしている。
次に[chyrp_post_attributes]。
一つのログは、[post_id]・[name]をキーに複数のレコードから成り立っている。
- post_id
[chyrp_posts].[id]に対応。 - name
更なる詳細な調査が必要だが、フェザーがtextだった場合、2レコード生成され、”title”・”body”という値が格納。 - value
上記[name]にそれぞれ対応した値(と言うか、自分が書いた文字)が格納される。
…と、プログラムの中身を見ずに入力情報・出力情報だけから得られた結果。
他のCMSツールは分からないが、AdminモードでChyrpを実行した場合、ブラウザの下部にその時に実行されたSQLが出力されている。これはもしかしたら便利かもしれない…ただし、これはデフォルトで付属しているテーマ(stardust)をベースにしたものでないとダメっぽい。どうやらテーマの何処かに何等かの記述があるみたいな。
2009/05/16
他のブログツール
近頃ではブログを出自を持つツールとCMSを出自に持つツールとの境界が曖昧になってる気がする。
その中で、あくまでもブログを出自に持ち、かつ、PHP+MySQLなツールを数点、野次馬的観点から試してみた。
使用したバージョンは、2009年5月現在のモノ。
数点試して思ったのは、自分が何を求めてるか? だった。
勿論現行のBlosxomでも問題無いし、その方が楽だが。
今度乗り換えるレンタルサーバにはMySQLが「無料で」使えるという、2009年に言う台詞ではないが、そういう状況になったのが大きい。また、ナントカの手習い・ナントカの冷や水では無いが、今風のツールに馴染んでおく事で、もしかしたら仕事の幅が広がるかな、という面が大きい。そういう面ではChyrpはどうなんだろうか…という葛藤はある。
結論から言うと、自分が求めてるのは、Chyrpにあった。
ビルドインでTumblr互換にできるししなくても良い、軽い、ページが持てる、この辺りだと思う。何となくBlosxomに通じるものを感じる。
勿論、一方でツールを「フレームワーク」として見た場合、どれに照準を合わせるか? だが、MODxかな、というのが現在の結論。
詳しくは無いが、Geeklogがプログラマ寄りに対して、MODxはデザイナ寄り、というのを聞いたので。
Word Press
無色透明なヒトには、間違い無くこれをお勧めする。
数年前に一度触って以来だが、管理画面が大幅に変わってる気がする。大分使い易くなってるんじゃなかろうかと。
Gelato
何それ? > MOONGIFT: ? tumblrクローン「gelato」:オープンソースを毎日紹介
いきなり出て来たのは、元々自分はTumblogに興味があったので。
そういう面では、Tumblrに一番近いと思う。
今回採用を見送ったのは、開発のスピードに難があったのと(そー思うならお前がやれ! だが)、Tumblog以外のコトができない、という点だった。我ながら我侭だと思う。
尚、Tumblr互換のオープンソースは他にもあるが、な、何か厳しい状況。
MODx
インストールでMySQLのCollation(照合順序)を問われた…正確にはMySQLでデータベース作成、照合順序を設定する…ツールは初めてだった。
問題発生。
何をやって良いのか分からん…冗談みたいだが。
他のツールも多分にそうだと思うが、Webデザイン系ツールとの融合が高いので、書籍を買って今後ぼちぼちと裏で触っていく予定。
2009/05/22
レンタルサーバへのインストールは失敗の模様…
RC3版ではデータベースとの接続でエラーが出てるっぽい。事象を詳しく解析はできないけど、インストールはできるが、adminでloginしようとしても弾かれるので、エラーログを見たところ…
[Sun Jul 26 22:15:25 2009] [error] [client 211.18.254.209] Database Error:
SELECT COUNT(1) AS count
FROM chyrp_sessions
WHERE (chyrp_sessions.id = '')
Array
(
[:id] => u7e2fkestui5iv8tgb0f0lubb0
)
#0 /HOGE/chyrp/includes/class/SQL.php(201): Query->__construct(Object(SQL), 'SELECT COUNT(1)…', Array, false)
#1 /HOGE/chyrp/includes/class/SQL.php(217): SQL->query('SELECT COUNT(1)…', Array, false)
#2 /HOGE/chyrp/includes/class/Session.php(57): SQL->count('sessions', Array)
#3 [internal function]: Session::write('u7e2fkestui5iv8…', 'login|s:5:”admi…')
#4 {main}
, referer: http://HOGE/chyrp/?action=login
ならばと新規リリースされたVersion2.0にてインストールしようとしたら、Chyrp Community – Installation Problem Unknown function: timezone_identifiers_list()でのエラーでインストール画面が途中までしか出てこない。
その画面のソースを見てエラー理由に気付いた。
ローカルのXAMPPでは何とかできているみたいだが…
もうあかん…これはだめかもわからんね。プロジェクト凍結かもしれんなぁ。
2009/07/26
WordPressに浮気する
上記の様な状況なので一時凍結状態。
そこではたと気付いたのだが、Chyrpであれ何であれ、「テンプレートのさ、触り方が良く分からん…」だった。
何となくイメージは分かるけど、実際に実装するとなると何処から手を付けて良いのか…
…という本が、インストール直後にやる事がまとまっている事、ステップバイオステップでゼロからテーマを構築する事が書かれていた事、(投稿に対する)ページに関しての記述があった事が良かったので購入した。
これに後、直接データベースを触る章があれば良かったかなと思う。(別の本にはこの辺への言及があったが)
と言うかここの出版社、MTも似た様な仕様の本を出してるので、このノリでChyrpも可能じゃないかと。
さて実際のWordPress2.8インストールだが、ローカルのXAMPへのインストールは以前に行なった事があるので今回もローカルにしようかと思ったが、いきなりレンタル鯖にインストールした。
と言うのも、ローカルである程度出来上がりいざ鯖で、で上手く行かなかったら悲しいので。
…意外な程あっけなくインストールできた…
例えばPEARを必要とする訳でも無く(初期状態)、congfigを書いて実行のモノの数秒で作業が完了。
但し、ローカルでWPのzipを展開して鯖にFTPするのに時間がかかった。
PEARの件もあるので後日、SSHのアカウント申請を行なう予定。
ところで今後、時系列のブログ形式だけではなく、Staticなページも持てる訳だが、その辺の切り分けをどうしようかと。
実際問題として、現在このサイトは「(日記)ブログ」とは言い難い状況でなので、RSS更新情報取得のPostをページとするか、今まで通り時系列で行くか、Blosxomネタも含めたコンテンツをどうするか等々、という問題に直面している。
とは言うものの、今回購入した本である程度コツを掴み(多分半分程度でお腹一杯になるんじゃないかと…)、その後、現行Blosxomとほぼ同じサイトにカスタマイズして、現行テキストファイルに吐き出しているRSS更新情報取得をMySQLに吐き出す様に仕変する予定。
多分この延長でChyrpでもできると思う。
尚、現状で見えている実現方法が良く分からないのは、1) 任意のテキストファイルの読み込み、2) 指定した記事件数目への任意ファイルの読み込み(現在YouTubeが表示されている部分)、あたり。
2009/09/10