小 中 大
Nucleus CMS マニュアル (v3.4)
はじめに:

- このマニュアルは管理エリアにて使用しているポップアップヘルプ(help.html)に記載されていない内容を収録しております。Nucleusのインストールガイドも収録しておりますので参考にしてください。
- デベロッパーの方は、 開発者向けマニュアル を併せてご覧下さい。

# 目次

- Nucleus CMS とは
- GPLライセンスについて
- インストールガイド
- スキンとテンプレートの編集(ページデザイン) (別ファイル)
- セキュリティについて
- パフォーマンスについて
- コメント受付時のルール
- XML-RPC インターフェイスについて
- 困った時は (FAQ)
- Tips & Suggestions (別ファイル)
- 現在指摘されている問題点
- 履歴 (別ファイル)
- 謝辞

# Nucleus とは

Nucleus とはコンテンツマネジメントシステム(Contents Management System : 略してCMS)ツールです。PHPで書かれており、blogサイト運営に強力に役立ちます。主な特徴は以下の通りです:

- 自分のサーバで運用できる
- 複数のblog設置が可能で単一ページに複数blog表示も可能
- プラグインによる機能拡張
- コメント投稿の標準装備
- 自動過去ログ作成
- カテゴリ分け
- 検索機能の標準装備
- 複数人による記事投稿
- 未来の日付での投稿
- 草稿機能
- 拡張性のある管理エリア
- 画像などのファイル添付機能
- ページデザインのフルカスタマイズ
- スキンのインポート/エクスポート
- コメント悪用者のブロック
- RSS 自動作成
- インストールが簡単
- バックアップが簡単
- XML-RPC インターフェイス ( Blogger API / metaWeblog API / Movable Type API 採用)
- XHTML 準拠
- Blogger と GreyMatter blogsからのコンバートツール
- ...

Nucleusのインストールには以下の環境が必要です: (不明な点はサーバ管理者にお尋ね下さい)

- PHP (バージョン 4.0.6 以降)
- MySQL データベース (バージョン 3.23.38 以降)
- デザインのカスタマイズをする場合は、HTML と CSS の基礎知識

Nucleus はサイト構築にあたって痒いところに手が届くように設計されています。HTMLに関する知識が全くなく、簡単にblogサイトを持ちたい人は インストール不要のホスティング型のblogサービス(Yahoo! JAPANの該当カテゴリ参照)を利用した方が良いかもしれません。

# ライセンスについて

Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
Copyright (C) 2002-2007 The Nucleus Group

このプログラムはフリーウェアです。 フリーソフトウェア財団(the Free Software Foundation)が公表したGNU一般公共使用許諾(GNU General Public License)の 「バージョン2」或いはそれ以降の各バージョンの中からいずれかを選択し、 そのバージョンが定める条項に従ったうえで、本プログラムの再配布・改変を認めています。

このプログラムがご自身の使用目的に合ったものであれば幸いです。 しかしながら 、商品性および特定目的に対する適合性に関する黙示的な保証を含み、 いかなる保証もいたしません。 詳細につきましてはGNU 一般公有使用許諾書をお読みください。

このプログラムと併せてGNU General Public Licenseのコピー をお受け取りのはずかと思いますが、受取られていない方は「Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA」までその旨をお知らせ下さい。

このソフトウェアを所有することは、これらの条件に同意することを意味します。これらの条件に同意されない方は、所持するこのソフトウェアのコピーを削除してください。

# インストールガイド

注意: 旧バージョンをすでにご使用の方は、Nucleus Webサイトのアップグレードガイドの方をご覧下さい。

ほんの数ステップでインストールは完了します。手順は以下の通り:

## 1. 圧縮ファイルの解凍

ダウンロードしたパッケージファイルを解凍します。生成されるディレクトリ構成は以下のようになっているかをご確認下さい。(*はディレクトリ以下にファイルがある事を意味します)

/* | (サイト表示用メインファイル)
/nucleus/* | (サイト管理用ファイル)
/nucleus/javascript/* | (javascripts スクリプト)
/nucleus/libs/* | (Nucleus のコアライブラリ)
/nucleus/language/* | (言語ファイル)
/nucleus/plugins/* | (プラグインファイル)
/nucleus/xmlrpc/* | (XML-RPC インターフェイス用ファイル)
/nucleus/documentation/* | (説明書)
/nucleus/styles/* | (管理エリア専用cssファイル)
/nucleus/images/* | (管理エリア専用画像ファイル)
/nucleus/forms/* | (入力フォーム部品ファイル)
/extra/* | (fancy URL用ファイルなど特殊なファイル)
/skins/* | (スキンファイル [読込み時にも使用])
/media/* | (添付ファイル [インストール時は空])

補足:

- 英語バージョンは一部の環境において正常に解凍できないとの報告があります。ファイルサイズが0バイトでないことを確認してください。
- /nucleus/forms/ ディレクトリにあるファイルの拡張子はすべて「.template」です。
  ファイル名が長いため拡張子の一部がカットされている場合がありますので確認してください。

## 2. サーバに転送

FTPソフトを使ってサーバに全部のファイルを転送します。拡張子が.phpのファイルは必ずASCIIモードで転送してください。モードを間違えると動作しません。

### パーミッションの変更(やらなくてもOK):

1. この段階で config.php のパーミッションを 666に変更しておくと、後のインストール手順を減らす事ができます。この手順をスキップした方は手動で config.php を編集するだけですのでどちらでも構いません。 (パーミッションの変更方法につきましてはパーミッションの変更ガイドを参照してください)
2. 画像など添付ファイルを使用される予定のある方は、mediaディレクトリを作成してこのディレクトリのパーミッションを書き込み可能に変更してください。書き込み可能にしておかないとアップロードが正常に行えません。通常は 777 かと思います(パーミッションの変更方法につきましてはパーミッションの変更ガイドを参照してください)。
   （root 権限をお持ちの場合は、ディレクトリを `httpd` プロセスが動作しているユーザに `chgrp` してください。通常は `httpd` もしくは`nobody` で、ディレクトリは `chmod 755` になるでしょう。）
3. ファイル編集に SkinFiles プラグインをお使いになる場合は、/skins/ ディレクトリ以下にあるすべてのファイルとディレクトリのパーミッションを変更する必要があるでしょう。ファイルの編集を可能にするには、ファイルのパーミッションは 666 にしておくことになるでしょう(パーミッションの変更方法につきましてはパーミッションの変更ガイドを参照してください)。新しいファイルやディレクトリを作成できるようにするためには、親ディレクトリのパーミッションを 777 にしておくことになるでしょう。

## 3. install.phpにアクセス

ブラウザを開いてサーバに転送したinstall.phpにアクセスします。URLは下記のようになります。(www.yoursite.com と yourpathの部分は読み替えてください)

    	http://www.yoursite.com/yourpath/install.php

表示されたページに必要入力事項を入力します。あらかじめ自動検知して入力済の部分がありますが確認をお願いします。送信後に次に行う手順が表示されますのでそれに従って作業してください。(最後にいくつかのファイルを手動でサーバから削除する作業が必要ですのでお忘れなく。)

注意: install.php にアクセスした際、「If you see this text in your browser...」というテキストが表示されたり、 install.phpのダウンロードが促されたりした場合は、そのサーバではphpスクリプトは動作しません。当然、残念ながらphpスクリプトであるNucleusを運用することができません。

## 4. 完了

インストールが完了したらすぐにトップページにアクセスすることができます。インストール完了画面の一番下にリンクが自動表示されていますのでジャンプして確認してみてください。

# セキュリティについて

## mySQL のパスワード

NucleusはphpスクリプトからmySQLデータベースにアクセスしますので、phpスクリプト内にmySQLパスワードを書き込んでおく必要があります。 複数ユーザーで使用するサーバの場合は100%安全ではないことをご了解下さい。また、ログイン名とログインパスワードを盗まれる可能性もあることもお知りおきください。phpスクリプトに重要な情報を埋め込んで使用する事の是非について調べたい方は詳しい方におたずね下さい。

この危険性はデータベースを使用するすべてのphpスクリプトに共通する問題です。通常はユーザー側で解決できる問題ではありません。100%安全ではないと言うことを念頭に置いておいて下さい。

## クッキー

Nucleus ではログイン情報の保持にクッキーを使用しています。クッキーが盗まれ誰かにログインされる危険性があります。 クッキーを覗いただけではパスワードは推測できません (実際にはパスワードは暗号化して格納しています) が、残念ながら、盗んだクッキーを利用してログインユーザーを偽装することが技術的に可能ではあります。

## メディアディレクトリ

添付ファイルを使用する際はメディアディレクトリのパーミッションを777にする必要があります。777にするという事は、そのサーバ上にいる誰もがそのディレクトリを操作できる権限を持つという事です。しかしながら、オンラインでPHPスクリプトからファイルをアップロードするためにはこの設定は必須です。代替案はありません。

# パフォーマンスについて

ほかのweblogツールとは異なり、Nucleusではあらゆる表示ページをサーバ上に保存しません。アクセスがあったURLを元にデータを呼出しその都度ページを生成して表示するという方法を採っています(動的ページ生成)。

この仕組みが原因でトラブルが起きる事はまずありません。1秒あたりものすごい数のアクセスのある大規模なサイトであれば動作に問題があるかもしれませんが、今のところはよくわかっていません。そこそこ大きなサイトで、1つのNucleusで30以上のblogを運用しているサイトでも特に問題点はないという報告を受けていることをご紹介しておきます。

# コメント受付時のルール

Nucleus では、コメントの性質を考えて以下のルールを設けています:

- 90字を越える連続した半角の英数字記号の投稿を禁止 (レイアウトが崩れるため)
- コメント文は3文字以上であること
- コメント文は5,000文字以下であること
- ゲストの名前は2文字以上であること
- ゲストの名前やe-mail欄は引用符、改行使用禁止
- コメント本文の3つの連続改行を1つの改行に置換 (見映え優先)
- HTML タグは使用不可能
- 左右の余分なスペースは削除
- URL はリンクテキストを短縮した上で自動リンク

これらのルールを変更したい場合はコアファイルの書き換えが必要となります。

# XML-RPC インターフェイス

Nucleusの XML-RPC インターフェイスにつきましては下記URL参照:
http://www.yourserver.com/yourpath/nucleus/xmlrpc/server.php

XML-RPC とは、XMLを利用してデータを読み書きする規格です。難しく聞こえるかもしれませんが、このXML-RPCという規格を組み込んでいれば他のツールを使ってデータの読み書きが可能になるという事だけ覚えておいてください。

現在の所、Blogger API、metaWeblog APIとMovable Type APIの3つの規格を充足しています。この規格を使用した記事投稿ツールに興味のある方は、 WB Editor (Windows版:日本語対応) または Ecto (MacOS版:日本語対応不明) を使ってみてください。

このXML-RPC インターフェイスの呼出し方法につきましては、開発者向けドキュメントにて解説しています。 Nucleus - XML-RPC インターフェイスをご覧下さい。

# 困った時は (FAQ)

Nuleusについて良く聞かれる質問をFAQとしてまとめました。質問される前にご一読下さい。大概のケースでは解決できるのではないでしょうか。

このようなエラーが表示されるのですが: Cannot send headers. Headers already sent...
`config.php`の冒頭と末尾に空白(スペース)が入っている場合によく起こります。`<?` の前、あるいは `?>`よりも後にスペースが挿入されていないかどうか確認してください。このスペースを削除するとエラーは解消されます。また、同様に言語ファイルやインストールしているプラグインのファイルについても同じ事が起きますので確認してみてください。
インストール時にinstall.phpにアクセスするとダウンロードを促されるのですが。
そのサーバはPHPプログラムに対応していません。残念ながらそのサーバでNucleusを運用することはできません。
トップページにアクセスすると「Connection Error」と表示されました。なぜですか？
Nucleusがデータベースサーバにアクセスできないことを意味しています。config.phpの最初で定義しているデータベース接続情報が正確かどうかをもう一度確認してみてください(パスワードがxxxxxxのままというケースがよくあります)。 また、本当にmySQLサーバがダウンしているのが原因かもしれません。
更新記録ファイルに更新情報が記録されないのですが。
更新記録ファイルを使うためにはファイルのパーミッションの適切な設定が必要です。またblog設定にて設定する前にこのファイルを置いておく必要があります(空のファイルを作成してアップロードを先にしてください)。この更新記録ファイルのパーミッションは666、このファイルがあるディレクトリは755としてください。 (パーミッションの変更方法につきましてはパーミッションの変更ガイドを参照してください)
XML-RPC インターフェイスを有効にしたくないのですが。
xmlrpc/ ディレクトリを削除するだけでOKです。何も問題はありません。
RSSの吐出しをしたくないのですが。
xml-rss.php ( xml-rss2.php , rsd.php ) を削除して、念のために「xmlrss」(「feeds/rss20」)という名前のスキン／テンプレートを削除してください。

# 現在指摘されている問題点

制限事項は以下の通りです:

- このリリース時点においては、Nucleus 3.0への公式なログ移行ツールはありません。今後のログ移行ツールの情報はログ移行ツール情報(英語:最新情報) (ログ移行ツール情報(日本語))に掲載していきます。
- Ctrl + Shift + A ショートカットキーは ICQ/Trillian と衝突します。
- サーバのPHPの設定がセーフモードonの場合、添付ファイルの使用時に問題が生じます。(画像ファイルのサイズが自動判定できない、アップロードがうまくいかない、など)
  *あらかじめmediaディレクトリに「1」、「2」など記事投稿者の数だけ数字のディレクトリを作成しておいて書き込み可能にしておくことで回避できます。
- RSSの表示が乱れることがあります。(特殊文字変換が原因。&amp; が &amp;amp; となるなど)
- blog設定で入力するメールアドレス欄の登録の上限は255バイトです。ですから、たくさんのメールアドレスを登録することはできません(件数ではなく合計文字数です)。
- Mozilla系のブラウザではプレビュー機能がうまく動作しません。
- Internet Explorer 6 で記事の投稿直後にたまにブラウザが落ちることがあります。ブラウザが落ちても記事の投稿は反映されています。(このトラブル報告から時間が経っているので解決していればよいのですが...)

# 謝辞

これまでの開発の陰には以下の方々の協力があったことを忘れてはなりません。どうかご一読を。

## 作者

- Wouter Demuynck

## コアファイル改良

- Andy Matsubara氏
- Armon Toubman氏
- Edmond Hui氏
- gRegor alias gregorlove氏
- Kai Greve alias kg氏
- Joel Pan alias ketsugi氏
- Kimitake氏
- Legolas氏
- Niels Leenheer alias rakaz氏
- Rodrigo Moraes氏
- Jeroen Budts氏
- Appie Verschoor氏 (全文検索)
- その他たくさんの方々... (開発履歴をご覧下さい)

## ライブラリなど

- Jeff MacMichael氏（NP_SkinFiles プラグイン）
- Ivan Fong氏、Moraes氏、Hcgtv氏（Nucleus 3.2 標準スキン）
- 各種プラグイン作者の方々
- 言語ファイルを提供してくださった方々 (NucleusのWebサイトにて言語ファイルのダウンロードができます)
- ロゴを作成してくださったRodrigo Moraes氏
- RSS 2.0 スキン作成された Xiffy氏
- XML-RPC インターフェイス 部分に使用した 'XML-RPC for PHP' (from Useful Inc.)
- バックアップ/リストア部分の開発の元にさせていただいた phpBB
- 即時プレビューのJavaScript コード の元にさせていただいたコードを書いた Mijn Kop Thee氏 (dutch) と milov.nl氏
- 管理エリアで地球アイコンを使用させていただいている QBullets

## 感謝

Nucleusが今日に至るのも、また、このほかのたくさんの方々の支援に支えられているからです。御礼申し上げます。

- NucleusのWebサイトにて寄付者のリストを掲示しております。
- フォーラムを取り仕切ってくださっている方々 や フォーラムに来てくださっている方々にも厚く御礼申し上げます。