install - img0chのインストール方法

# NAME

install - img0chのインストール方法

# SYNOPSYS

# DESCRIPTION

## img0chそのもののインストール

img0chのインストールに必要条件は以下の通りです。 ほとんどのレンタルサーバーで動作するように作成しています。

perlのバージョンが5.00503以上(5.8.xを推奨)
15MB以上のディスクスペース

### STEP.1

img0ch.zipあるいはimg0ch.tar.bz2を解凍します。

### STEP.2

img0ch/test/ディレクトリに移動し、その中のimg0ch-config.cgi.defaultを開きます。 編集が完了したらimg0ch-config.cgi.defaultを img0ch-config.cgiに名前を変更(リネーム)してください。

以下の設定値を自分のサイトのディレクトリ構造にあわせて変更してください。 なお、configもあわせて参照してください。

BBSPath

  自分のサイトに設置する全ての掲示板を格納するディレクトリのパスを指定します。

Server

  自分のサイトに設置するBBSPathまでの絶対URLを指定します。

RepositoryType

  レポジトリで使用するモジュール名を指定します。通常Simpleを使用します。 指定しなくてもSimpleが利用されます。

RepositoryRoot

  レポジトリまでのディレクトリのパスを指定します。 極力全ての人からアクセス出来ないパスまでを指定してください。 (public_htmlディレクトリがあるならそのディレクトリよりも上に) どうしても事情があって公開せざるをえないパスに指定しなければならない場合は RepositoryFileExtensionをcgiに指定してください。 直接レポジトリファイルをアクセスされても500で返してアクセス出来なくさせます。

Static

  静的ファイルを格納したディレクトリ(/static)までの絶対URLを指定します。 基本的にこの値は変更する必要はありません。

TemplatePath

  テンプレートファイルを格納したディレクトリを指定します。 Static同様、基本的にこの値は変更する必要はありません。

TemplateEngine

  テンプレートを解析するエンジンとなるモジュールを指定します。 通常はHTML::Templateを使用しますが、高速化をねらうのであれば インストールされていればClearSilverを利用することが出来ます。

TemplateFileExtension

  テンプレートファイルの拡張子を指定します。 HTML::Templateを使用する場合は変更する必要はありません。 ClearSilverを使用する場合は"cs"を指定する必要があります。

### STEP.3

img0chディレクトリに移動し、以下のディレクトリをFTP経由でアップロードします。 (readmeディレクトリは説明用なのでアップロードする必要はありません)

      _system
      _template
      static
      test

なお、このとき拡張子がcgiのファイルはASCIIモードで、 それ以外のファイルはBINARYモードでアップロードする必要があります。

#### CAUTION

一部モジュールがバイナリになっているので、拡張子がpmのファイルを ASCIIモードで転送すると動作しなくなります。 (Unicode::Japaneseというモジュールが該当します)

### STEP.4

RepositoryRootのパスを存在しなければ作成し、 パーミッションを0700にします。

インストール作業に失敗するのであればパーミッションを0770、0777と段階的に上げていきます。 ただし、その分セキュリティ的なリスクが大きいので、なるべく0700にするべきです。

### STEP.5

アップロードしたディレクトリの/testディレクトリに移動して、 以下のファイルのパーミッションを0755あるいは0705に変更します。

      bbs.cgi
      r.cgi
      read.cgi
      zeromin.cgi

### STEP.6

zeromin.cgiにアクセスし、インストール作業を行います。 インストールウィザード画面が表示されますので、それに従ってください。

ウィザードに従ってインストール作業を行うとログイン画面になります。

## 過去のバージョンとの互換性確保

STEP.2でimg0ch-config.cgi.defaultに記述されている[compatible]と 以下の値の情報の前にあるコメント(#)を削除することで過去のバージョンとの互換性を 確保してデータを引き継ぐことが出来ます。

過去のバージョンのデータは読み出し専用で読み出し、保存するときデータは全て レポジトリに保存されるため、過去のバージョンのデータが上書きされることはありませんが、 レポジトリに保存されたデータが優先的に利用されます。

## typeテンプレートの使用方法

typeテンプレートはtDiary互換のXHTMLを出力するテンプレートです。 若干の作業が必要になるため、インストール直後からtypeテンプレートを 利用することは出来ません。以下の手順を踏まえる必要があります。

### STEP.1

http://www.tdiary.org のダウンロードからtdiary-full-x.x.x.tar.gzを 入手します(x.x.xはバージョン番号)。

### STEP.2

解凍したディレクトリの中のthemeディレクトリの中のファイル及びディレクトリを /static/tdiaryにコピーします。

### STEP.3

掲示板設定から「使用するテンプレート名」(BBS_TEMPLATE)に「type」を指定します。

### STEP.4

掲示板設定から「typeに適用するテーマ名(BBS_TEMPLATEをtypeにする必要があります。)」 (BBS_TYPE_TEMPLATE)の値に/static/tdiary内にある好きなテンプレート名 (ディレクトリ名)を指定します。指定されない場合はdefaultになります。

### STEP.5

インデックスを更新するとBBS_TYPE_TEMPLATEに応じたデザインのHTMLが出力されます。 tdiaryのテーマによってはデザイン構成が崩れることがあります。

## read.cgiをread.htmlに変更する

read.htmlはブラウザに内蔵されている非同期通信機能を使ってdatを直接取得し、 ブラウザ側でレスを描写するHTMLファイルです。これにより、サーバー側はdatのみを 送るだけでよくなるため、サーバーへの負荷を大幅に抑えることが出来ます。

ただし、テンプレートが使用できなくなるため、デザイン変更は自分で行う必要があります。 また、サーバー側の処理をクライアントで行うことになるため、描写処理の負荷が大きい問題が あります。さらに、utf8にエンコードされたdatを生成するため、書き込み処理が若干 大きくなることとサーバーへの使用容量を増やすことになります。

### STEP.1

zerominにログインし、「プラグイン」からプラグインの一覧を表示します。 一覧からImg0ch::Plugin::BBS::UTF8Datに絞りこみ、 表示された結果を全て有効にします。

次のSTEP.2の作業は全てあるいはほとんどのutf8のdatが生成されるまで 作業しない方がよいでしょう。

### STEP.2

img0ch-config.cgiを編集し、Rendererと RendererSeparatorを以下のように設定します。

      Renderer = read.html
      RendererSeparator = #

変更したらインデックスの更新を行うか、書き込みを待ちましょう。

## LightboxJS(Imagebox)を画像表示に利用する

2.1.1からImg0ch::Plugin::Rewrite::ImageでLightboxJS(またはその互換)を利用して 画像を表示することが出来るようになっています。ここではLightboxJSを使うための方法を記載します。

2.1.3からはInterfaceのImagebox(LightboxJSに似たjQueryのプラグイン)が バンドルされるようになりました。

LightboxJS(v2.0)は以下から入手できます。 http://www.huddletogether.com/projects/lightbox2/

LightboxPlusは以下から入手できます。 http://serennz.sakura.ne.jp/toybox/lightbox/?ja

### STEP.1

zerominにログインし、「プラグイン」からプラグインの一覧を表示します。 一覧からImg0ch::Plugin::Rewrite::Imageに絞りこみ、 表示された結果を全て有効にします。

### STEP.2

掲示板を選択し、「各種編集処理」からMETA編集を行います。

以下はImageBoxでの記述例です。/PATH/TO/STATIC/は img0ch-config.cgiのStaticURIの値に置換してください。

      <link rel="stylesheet" href="/PATH/TO/STATIC/css/imagebox.css" type="text/css" media="screen" />
      <script type="text/javascript" src="/PATH/TO/STATIC/js/jquery/interface/imagebox.js"></script>
      <script type="text/javascript">
      <!--
      jQuery(function(){
          jQuery.ImageBox.init({
              "loaderSRC": "/PATH/TO/STATIC/images/imagebox/loading.gif",
              "closeHTML": '<img src="/PATH/TO/STATIC/images/imagebox/close.jpg" border="0" />' });
      });
      //-->
      </script>

さらにimg0ch-config.cgiに以下を記述します。これによりImageboxが利用できるようになります。

      UploadImageLinkRelative = imagebox_%s

以下は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()の部分)を 削除するべきでしょう。

### STEP.3

META編集を完了させるとread.cgiの場合は即座に反映されます。 掲示板のインデックスを更新することによってindex.htmlに反映され、index.htmlにも反映されます。

## メール経由での画像投稿を有効にする

メール経由での画像投稿はブラウザからファイルをアップロードすることが出来ない 携帯電話のための機能です。これを有効にすることによって携帯電話に保存されている画像を 取り込むことが可能になります。

### STEP.1

img0ch-config.cgiを開き、POP3Server、POP3User、POP3Pass、 MailPostAddressの値を埋めます。各種説明はconfigにあります。

POP3Server、POP3User、POP3Passはメールアドレスを管理するサイトから調べる 必要があります。メールソフトを使ってメールを取り込むことが出来るならPOP3を 利用することが出来るとみてください。yahoo!及びGmailはPOP3を利用することが出来ます。 上記の値を間違えるとm.cgiから例外を発行し、投稿が出来なくなりますので注意してください。

MailPostAddressはメール経由の投稿を受け付けるメールアドレスを指定してください。

### STEP.2

zerominにログインし、有効にする掲示板を選択して「掲示板設定」の「img0ch独自の設定」から 「携帯からのメール投稿を許可する」をチェックして「設定」をクリックして有効にします。 これでメール経由での画像投稿が可能となります。

なお、「携帯からのメール投稿を許可する」にチェックが入っていない掲示板に投稿を行うと 投稿不正とみなされ、メールが破棄されてしまいます。

## Img0ch::Plugin::Filter::JPOnlyを使う

Img0ch::Plugin::Filter::JPOnlyを使うにはまずIP::Countryの設定を行う必要があります。 これは各種のライセンスの問題上含めることが出来ないため、初回にこの作業を行わなければなりません。

### IP::Country::MaxMindを使う場合

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::Fastを使う場合

まず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クオリティを利用可能にする

### STEP.1

VIPクオリティのモジュールを取得します。 ファイル名はvip_quality_v[xxx].zip([xxx]はバージョン番号)です。

      http://www.nullpo.org/pablic_html/vip_quality/vip_quality.html

### STEP.2

上記の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で保存します。 別の文字コードで保存した場合文字化けが発生するおそれがあります。

### STEP.3

ZIPファイルを解凍した後に出てくる/setting/vip_quality/のディレクトリを $setting{'$file_path'}に合わせて設置します。

### STEP.4

Vip_quality.plを/test/img0ch/3/か/test/img0ch/ext/に設置します。 間違ったパスに入れた場合プラグインを有効にした後に書き込むときに以下のエラーが発生します。

      Can't locate Vip_quality.pl in @INC (@INC contains:...

### STEP.5

zerominにログインし、「プラグイン」からプラグインの一覧を表示します。 一覧からImg0ch::Plugin::BBS::VIPに絞りこみ、表示された結果を全て有効にします。

# SEE ALSO

Img0ch::Config

http://hikarin.jp ( alias to http://img0ch.sourceforge.jp )

# AUTHOR

hkrn <hikarin at users dot sourceforge dot jp>

install - img0chのインストール方法

# INDEX

- 15MB以上のディスクスペース
- AUTHOR
- BBSPath
- CAUTION
- DESCRIPTION
- IP::Country::Fastを使う場合
- IP::Country::MaxMindを使う場合
- Img0ch::Plugin::Filter::JPOnlyを使う
- LightboxJS(Imagebox)を画像表示に利用する
- NAME
- RepositoryRoot
- RepositoryType
- SEE ALSO
- STEP.1
- STEP.2
- STEP.3
- STEP.4
- STEP.5
- STEP.6
- SYNOPSYS
- Server
- Static
- TemplateEngine
- TemplateFileExtension
- TemplatePath
- VIPクオリティを利用可能にする
- img0chそのもののインストール
- perlのバージョンが5.00503以上(5.8.xを推奨)
- read.cgiをread.htmlに変更する
- typeテンプレートの使用方法
- メール経由での画像投稿を有効にする
- 過去のバージョンとの互換性確保

install - img0chのインストール方法