TABLE OF CONTENTS
install - img0chのインストール方法
img0chのインストールに必要条件は以下の通りです。 ほとんどのレンタルサーバーで動作するように作成しています。
img0ch.zipあるいはimg0ch.tar.bz2を解凍します。
img0ch/test/ディレクトリに移動し、その中のimg0ch-config.cgi.defaultを開きます。 編集が完了したらimg0ch-config.cgi.defaultを img0ch-config.cgiに名前を変更(リネーム)してください。
以下の設定値を自分のサイトのディレクトリ構造にあわせて変更してください。 なお、configもあわせて参照してください。
自分のサイトに設置する全ての掲示板を格納するディレクトリのパスを指定します。
自分のサイトに設置するBBSPathまでの絶対URLを指定します。
レポジトリで使用するモジュール名を指定します。通常Simpleを使用します。 指定しなくてもSimpleが利用されます。
レポジトリまでのディレクトリのパスを指定します。 極力全ての人からアクセス出来ないパスまでを指定してください。 (public_htmlディレクトリがあるならそのディレクトリよりも上に) どうしても事情があって公開せざるをえないパスに指定しなければならない場合は RepositoryFileExtensionをcgiに指定してください。 直接レポジトリファイルをアクセスされても500で返してアクセス出来なくさせます。
静的ファイルを格納したディレクトリ(/static)までの絶対URLを指定します。 基本的にこの値は変更する必要はありません。
テンプレートファイルを格納したディレクトリを指定します。 Static同様、基本的にこの値は変更する必要はありません。
テンプレートを解析するエンジンとなるモジュールを指定します。 通常はHTML::Templateを使用しますが、高速化をねらうのであれば インストールされていればClearSilverを利用することが出来ます。
テンプレートファイルの拡張子を指定します。 HTML::Templateを使用する場合は変更する必要はありません。 ClearSilverを使用する場合は"cs"を指定する必要があります。
img0chディレクトリに移動し、以下のディレクトリをFTP経由でアップロードします。 (readmeディレクトリは説明用なのでアップロードする必要はありません)
_system
_template
static
test
なお、このとき拡張子がcgiのファイルはASCIIモードで、 それ以外のファイルはBINARYモードでアップロードする必要があります。
一部モジュールがバイナリになっているので、拡張子がpmのファイルを ASCIIモードで転送すると動作しなくなります。 (Unicode::Japaneseというモジュールが該当します)
RepositoryRootのパスを存在しなければ作成し、 パーミッションを0700にします。
インストール作業に失敗するのであればパーミッションを0770、0777と段階的に上げていきます。 ただし、その分セキュリティ的なリスクが大きいので、なるべく0700にするべきです。
アップロードしたディレクトリの/testディレクトリに移動して、 以下のファイルのパーミッションを0755あるいは0705に変更します。
bbs.cgi
r.cgi
read.cgi
zeromin.cgi
zeromin.cgiにアクセスし、インストール作業を行います。 インストールウィザード画面が表示されますので、それに従ってください。
ウィザードに従ってインストール作業を行うとログイン画面になります。
STEP.2でimg0ch-config.cgi.defaultに記述されている[compatible]と 以下の値の情報の前にあるコメント(#)を削除することで過去のバージョンとの互換性を 確保してデータを引き継ぐことが出来ます。
過去のバージョンのデータは読み出し専用で読み出し、保存するときデータは全て レポジトリに保存されるため、過去のバージョンのデータが上書きされることはありませんが、 レポジトリに保存されたデータが優先的に利用されます。
typeテンプレートはtDiary互換のXHTMLを出力するテンプレートです。 若干の作業が必要になるため、インストール直後からtypeテンプレートを 利用することは出来ません。以下の手順を踏まえる必要があります。
http://www.tdiary.org のダウンロードからtdiary-full-x.x.x.tar.gzを 入手します(x.x.xはバージョン番号)。
解凍したディレクトリの中のthemeディレクトリの中のファイル及びディレクトリを /static/tdiaryにコピーします。
掲示板設定から「使用するテンプレート名」(BBS_TEMPLATE)に「type」を指定します。
掲示板設定から「typeに適用するテーマ名(BBS_TEMPLATEをtypeにする必要があります。)」 (BBS_TYPE_TEMPLATE)の値に/static/tdiary内にある好きなテンプレート名 (ディレクトリ名)を指定します。指定されない場合はdefaultになります。
インデックスを更新するとBBS_TYPE_TEMPLATEに応じたデザインのHTMLが出力されます。 tdiaryのテーマによってはデザイン構成が崩れることがあります。
read.htmlはブラウザに内蔵されている非同期通信機能を使ってdatを直接取得し、 ブラウザ側でレスを描写するHTMLファイルです。これにより、サーバー側はdatのみを 送るだけでよくなるため、サーバーへの負荷を大幅に抑えることが出来ます。
ただし、テンプレートが使用できなくなるため、デザイン変更は自分で行う必要があります。 また、サーバー側の処理をクライアントで行うことになるため、描写処理の負荷が大きい問題が あります。さらに、utf8にエンコードされたdatを生成するため、書き込み処理が若干 大きくなることとサーバーへの使用容量を増やすことになります。
zerominにログインし、「プラグイン」からプラグインの一覧を表示します。 一覧からImg0ch::Plugin::BBS::UTF8Datに絞りこみ、 表示された結果を全て有効にします。
次のSTEP.2の作業は全てあるいはほとんどのutf8のdatが生成されるまで 作業しない方がよいでしょう。
img0ch-config.cgiを編集し、Rendererと RendererSeparatorを以下のように設定します。
Renderer = read.html
RendererSeparator = #
変更したらインデックスの更新を行うか、書き込みを待ちましょう。
2.1.1からImg0ch::Plugin::Rewrite::ImageでLightboxJS(またはその互換)を利用して 画像を表示することが出来るようになっています。ここではLightboxJSを使うための方法を記載します。
LightboxJS(v2.0)は以下から入手できます。 http://www.huddletogether.com/projects/lightbox2/
LightboxPlusは以下から入手できます。 http://serennz.sakura.ne.jp/toybox/lightbox/?ja
zerominにログインし、「プラグイン」からプラグインの一覧を表示します。 一覧からImg0ch::Plugin::Rewrite::Imageに絞りこみ、 表示された結果を全て有効にします。
掲示板を選択し、「各種編集処理」からMETA編集を行います。
以下はLightboxJS(v2.0)での記述例です。/path/to/static/lightboxには lightboxを格納するディレクトリまでのパスを指定してください。
<script type="text/javascript" src="/path/to/static/lightbox/js/prototype.js"></script>
<script type="text/javascript" src="/path/to/static/lightbox/js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="/path/to/static/lightbox/js/lightbox.js"></script>
<link rel="stylesheet" href="/path/to/static/lightbox/css/lightbox.css" type="text/css" media="screen" />
<script type="text/javascript">
//<!--
var fileLoadingImage = "/path/to/static/lightbox/images/loading.gif";
var fileBottomNavCloseImage = "/path/to/static/lightbox/images/close.gif";
//-->
</script>
以下はLightboxPlusでの記述例です。/path/to/static/lightbox_plusには lightbox_plusを格納するディレクトリまでのパスを指定してください。
<script type="text/javascript" src="/path/to/static/lightbox_plus/spica.js"></script>
<script type="text/javascript" src="/path/to/static/lightbox_plus/lightbox_plus.js"></script>
<link rel="stylesheet" href="/path/to/static/lightbox_plus/lightbox.css" type="text/css" media="screen" />
<script type="text/javascript">
//<!--
Event.register(window, "load", function() {
var lightbox = new LightBox({
"loadingimg": "/path/to/static/lightbox_plus/loading.gif",
"expandimg": "/path/to/static/lightbox_plus/expand.gif",
"shrinkimg": "/path/to/static/lightbox_plus/shrink.gif",
"previmg": "/path/to/static/lightbox_plus/prev.gif",
"nextimg": "/path/to/static/lightbox_plus/next.gif",
"effectimg": "/path/to/static/lightbox_plus/zzoop.gif",
"effectpos": { "x": -20, "y": -20 },
"effectclass": "i0_image",
"closeimg": "/path/to/static/lightbox_plus/close.gif",
"resizable": true
});
});
//-->
</script>
lightbox_plus.jsの最後のコードにlightbox_plusを読み込むコードが入っていますが、 これによって以下のコードを実行する前にそのコードが実行されてしまうため、 本来読み込むべきでないパスを読み込んでしまう(read.cgiを呼び出してしまう)ため、 可能であればlightbox_plus.jsに最後に含まれるコード(Event.register()の部分)を 削除するべきでしょう。
META編集を完了させるとread.cgiの場合は即座に反映されます。 掲示板のインデックスを更新することによってindex.htmlに反映され、index.htmlにも反映されます。
メール経由での画像投稿はブラウザからファイルをアップロードすることが出来ない 携帯電話のための機能です。これを有効にすることによって携帯電話に保存されている画像を 取り込むことが可能になります。
img0ch-config.cgiを開き、POP3Server、POP3User、POP3Pass、 MailPostAddressの値を埋めます。各種説明はconfigにあります。
POP3Server、POP3User、POP3Passはメールアドレスを管理するサイトから調べる 必要があります。メールソフトを使ってメールを取り込むことが出来るならPOP3を 利用することが出来るとみてください。yahoo!及びGmailはPOP3を利用することが出来ます。 上記の値を間違えるとm.cgiから例外を発行し、投稿が出来なくなりますので注意してください。
MailPostAddressはメール経由の投稿を受け付けるメールアドレスを指定してください。
zerominにログインし、有効にする掲示板を選択して「掲示板設定」の「img0ch独自の設定」から 「携帯からのメール投稿を許可する」をチェックして「設定」をクリックして有効にします。 これでメール経由での画像投稿が可能となります。
なお、「携帯からのメール投稿を許可する」にチェックが入っていない掲示板に投稿を行うと 投稿不正とみなされ、メールが破棄されてしまいます。
Img0ch::Plugin::Filter::JPOnlyを使うにはまずIP::Countryの設定を行う必要があります。 これは各種のライセンスの問題上含めることが出来ないため、初回にこの作業を行わなければなりません。
cpanシェルが使える、またはUNIXシェルでコンパイルが出来るのであればGeo::IPを インストールしてください。こちらはC言語を利用しますので、Geo::IP::PurePerlより高速です。
主にcpanシェルを使ってインストールすることが出来ないレンタルサーバーは以下のURLから [Download]をクリックしてGeo::IP::PurePerlを取得します。
http://search.cpan.org/dist/Geo-IP-PurePerl/
この中のPurePerl.pmをtest/img0ch/3/ext/Geo/IP/にアップロードしてください。
次に以下のURLからGeoIP.dat.gzをダウンロードし、Webから見えないディレクトリに アップロードします。
http://www.maxmind.com/download/geoip/database/
img0ch-config.cgiに以下を追加し、括弧を説明通りに置換してください。
IPCountryType = MaxMind
GeoIPDat = (GeoIP.datをアップロードした先のディレクトリとファイル名)
まずIP::CountryのCOPYRIGHT以下の記述を確認してください。 これに同意が出来るのであればURLの次を参照してください。
http://search.cpan.org/dist/IP-Country/lib/IP/Country.pm
下記URLからcc.gifとip.gifをダウンロードします。 この二つのファイルをtest/img0ch/3/ext/IP/Country/Fast/にアップロードして下さい。
http://search.cpan.org/src/NWETTERS/IP-Country-2.22/lib/IP/Country/Fast/
(現時点で最新版は2.22)
img0ch-config.cgiには記述し無くてもFastを使うように指定されますが、 もし記述するのであれば以下を追加してください。
IPCountryType = Fast
VIPクオリティのモジュールを取得します。 ファイル名はvip_quality_v[xxx].zip([xxx]はバージョン番号)です。
http://www.nullpo.org/pablic_html/vip_quality/vip_quality.html
上記のZIPファイルを解凍し、その中のVip_quality.plを開いて変更を行います。 変更を行う箇所は3箇所あります。
# 表示項目ファイルのパスを設定(313行目)
$setting{'$file_path'} = '(/setting/vip_quality/までのパスを入れる)';
# 掲示板設置ルートディレクトリ(318行目)
$setting{'$bbs_path'} = '(img0ch-config.cgiのBBSPathと同じように値を入れる)';
# 掲示板設置ルートディレクトリ(517行目)
$setting{'$bbs_path'} = '(img0ch-config.cgiのBBSPathと同じように値を入れる)';
変更した後保存を行います。ファイルの文字コードはSJISですので、SJISで保存します。 別の文字コードで保存した場合文字化けが発生するおそれがあります。
ZIPファイルを解凍した後に出てくる/setting/vip_quality/のディレクトリを $setting{'$file_path'}に合わせて設置します。
Vip_quality.plを/test/img0ch/3/か/test/img0ch/ext/に設置します。 間違ったパスに入れた場合プラグインを有効にした後に書き込むときに以下のエラーが発生します。
Can't locate Vip_quality.pl in @INC (@INC contains:...
zerominにログインし、「プラグイン」からプラグインの一覧を表示します。 一覧からImg0ch::Plugin::BBS::VIPに絞りこみ、表示された結果を全て有効にします。
http://hikarin.jp ( alias to http://img0ch.sourceforge.jp )
hkrn <hikarin at users dot sourceforge dot jp>