################################################################################ adiary 簡易ドキュメント Copyright (C)nabe@abk ################################################################################ ★変更点など詳細は以下を参照してください。 adiary公式サイト http://adiary.org/ リリース情報 http://adiary.blog.abk.nu/_category?cat=adiary::%a5%a2%a5%ca%a5%a6%a5%f3%a5%b9 ################################################################################ ●動作環境 ################################################################################ (1)Perl 5.8.1 以降ならばそのままで ok (perl -V 等で確認) (2)そうでなければ、Jcode.pm をシステムにインストール http://openlab.jp/Jcode/index-j.html 広告が出るなどの、特定のレンタルサーバではうまく動作しないことがあります。 http://adiary.blog.abk.nu/0101 ################################################################################ -------------------------------------------------------------------------------- ●設置方法 -------------------------------------------------------------------------------- (1) 解凍してでてきたファイルをサーバ上の任意の位置に置く (2) adiary.cgi, uploader.cgi に実行属性を付ける(他は不要) (3) data/, public/, __cache/ ディレクトリを www 権限で書き込めるようにする。  (suEXEC の場合は不要) (4) uploader.conf.cgi.sample を uploader.conf.cgi にコピーする   リネームしても構いません。 (5) adiary.conf.cgi.sample を adiary.conf.cgi としてコピーし適当にいじる  ・マルチユーザーモードの場合は無変更でもok。  ・シングルユーザーモード運用の場合は $v.single_mode の先頭#を外し有効化。   IDを適切に設定する。(例)<$v.single_mode = 'my_id'>  ・ディレクトリ名は必ず '/' で終えること  ・<#$xxx> < $xxx> などはコメントアウト。<$xxx> <@xxx> は実行構文 (6) adiary.cgi にアクセスし、ID、パスワードを入力せずにログイン。 (7) その後、自分自身をユーザーとして追加する。  ・シングルユーザーモードの場合は、上で設定した ID を追加すること。 (*)Perl の Version が 5.8.0 以前の場合  Jcode.pm(http://openlab.jp/Jcode/index-j.html)をインストールしてください。  インストールしないとRSSやTrackbackなどで文字化けが起こります。 -------------------------------------------------------------------------------- ●設置方法の補足 -------------------------------------------------------------------------------- (a)ルータPCに adiary をインストールする場合  adiaryはアクセス時のホスト名を基本として動作しますので、RSSに内部ホスト名やIP が出てしまったり、トラックバックなどが送れなかったりします。この場合は、外部から 参照するサーバ名を adiary.conf.cgi で設定してください。 <$Server_name='my-offical.host.name'> (b)画像アップロード機能が要らない場合  adiary.conf.cgi 中の v.uploader の設定値を 0 に書き換えて、 <$v.uploader = 0>  uploader.cgi の実行属性を消してください。 (c)画像アップロード機能でサムネイル(縮小画像)を作りたい場合  ImageMagick(PerlMagick)をインストールしてください。 (d)タグの利用制限を外す  adiary.conf.cgi 中の trust mode(トラストモード)を有効にしてください。 <$v.trust_mode = 1> (e)追加のはてなテーマ  adiaryでは「はてなテーマ」が使用出来ます。  必要な方は hatena_themes.tar.gz を adiary ディレクトリ内で展開してください。 (f)メール投稿機能の設定方法は以下を参照してください。  http://adiary.blog.abk.nu/0162 -------------------------------------------------------------------------------- ●cgi のファイル名を隠す場合の、.htaccess の書き方(サンプル) -------------------------------------------------------------------------------- RewriteEngine On RewriteBase /web-path/adiary/ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ adiary.cgi/$1 [L] ・RewriteBase は adiary を設置したweb上のパスをご指定ください。  上記は http://xxx.yyy.zz/web-path/adiary.cgi  に設置した場合、 http://xxx.yyy.zz/web-path/  でアクセスできるようにするサンプルです。 ・.htaccess は adiary.cgi と同じディレクトリに置きます。 ・途中から移行した場合、最近の記事やコメントなどのリンクがすぐには修正されません。  気になる場合は、日記の設定(詳細)を開き一度保存してください。 -------------------------------------------------------------------------------- ●高速動作のために(共通事項) --------------------------------------------------------------------------------  mod_perl や SpeedyCGI、FastCGIなどの方法で高速化行う場合、データベース アクセスをメモリキャッシュとして展開することをお勧めします。 --------------------------------------------------- キャッシュルーチンを途中に挟む場合の設定 <#$DB = loadpm('DB_cache', 'DB_pseudo', 'data/db/')> <#$DB = loadpm('DB_cache', 'DB_pg', 'database=adiary', 'adiary', 'test', 1.connection_pool)> <#$DB = loadpm('DB_cache', 'DB_mysql', 'database=adiary', 'adiary', 'test', 1.connection_pool)> <#$DB = loadpm('DB_cache', 'DB_mysql', 'database=adiary', 'adiary', 'test', 1.connection_pool, 'ujis')> ---------------------------------------------------  すでにある <$DB = loadpm(....)> という行を <#$DB = loadpm(....)> とコメント アウトし、上記の中で適切な(外部DBを使用しないならば一番上)行の <#$DB = ...> を <$DB = ...> というように先頭 # を外してください。 -------------------------------------------------------------------------------- ●高速動作のために(mod_perl2 on Apache 2.x) 設定サンプル -------------------------------------------------------------------------------- LoadModule perl_module modules/mod_perl.so #PerlInterpStart 3 #PerlInterpMax 5 #PerlInterpMinSpare 3 #PerlInterpMaxSpare 3 #PerlInterpMaxRequests 2000 PerlModule Apache2::MPM PerlSwitches -I/home/xxxx/public_html/adiary/lib PerlOptions +ParseHeaders SetHandler perl-script PerlResponseHandler ModPerl::Registry ※アップグレード時などに Apache の再起動が必要です。  スケルトンファイルやconfファイルの修正では再起動は不要です。 -------------------------------------------------------------------------------- ○mod_perl2 on Apache 2.x ※再起動不要 -------------------------------------------------------------------------------- LoadModule perl_module modules/mod_perl.so PerlModule patches::ModPerl::Util PerlModule patches::Apache2::Reload PerlModule Apache2::Reload PerlModule Apache2::MPM PerlInitHandler Apache2::Reload PerlSetVar ReloadAll Off PerlSetVar ReloadDebug Off PerlSetVar ReloadModules "Satsuki::*" PerlSwitches -I/home/xxxx/public_html/adiary/lib PerlOptions +ParseHeaders SetHandler perl-script PerlResponseHandler ModPerl::Registry ※アップグレード時の再起動は不要です。もう修正されて大丈夫とは思いますが、  たまに動作がおかしくなるので、上記の設定を選択した方が無難です。  →2回に1回ぐらいログインできなくなるといった症状が起こる -------------------------------------------------------------------------------- ●高速動作のために(SpeedyCGI編) -------------------------------------------------------------------------------- http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod ○ソースコード http://www.cpan.org/modules/by-authors/id/H/HO/HORROCKS/ 実行ファイル:adiary.speedy.cgi 実行ファイル1行目は #!/usr/bin/speedy になっています。サーバによっては次のように書き換える必要があるでしょう。 #!/usr/local/bin/speedy #!/usr/bin/perperl ※ファイル名が気になるならば adiary.cgi 等にリネームしても問題ありません。 ※uploader.cgi に上書きすれば、uploader も SpeedyCGI で実行されます。 ※ライブラリファイルが更新されたとき、自動的に内部で再起動を行います。 ※mod_speedycgiでも動作します。 -------------------------------------------------------------------------------- ●高速動作のために(FastCGI編) -------------------------------------------------------------------------------- http://www.fastcgi.com/ ・FCGI.pm(FastCGI用Perlモジュール)が必要です。 ・mod_fcgid http://fastcgi.coremail.cn/ で構いません(こっちの方がいいかも)。 実行ファイル:adiary.fcgi ・Apache の設定例 LoadModule fastcgi_module modules/mod_fastcgi.so FastCgiConfig -maxProcesses 4 FastCgiConfig -startDelay 10 FastCgiIpcDir /tmp/fcgi_ipc/ AddHandler fastcgi-script .fcgi ※uploader.fcgi などにコピーし適切に設定すれば uploader も FastyCGI 化できます。 ※ライブラリファイルが更新されたとき、自動的に内部で再起動を行います。 -------------------------------------------------------------------------------- ●Windowsでの運用 --------------------------------------------------------------------------------  開発環境として「Windows Apache + ActivePerl」を利用していた時期もありました ので、通常の cgi 動作程度ならば問題なく動くと思います。  一応、簡単な動作確認をしたところ Apache 2.0 + ActivePerl 5.8 AnHttpd 1.4x + ActivePerl 5.8 で動作しました。当然のことながら、本格的なサーバ運用としては推奨できません。 ●その他のWindows環境(非推奨!) ・AN HTTPD + perlis.dll  adiary.conf.cgi の最初の方に次のように記述してください。 ---------------------------------------- <$ENV.PATH_INFO = substr(ENV.PATH_INFO, length(ENV.SCRIPT_NAME))> <$NHP_mode = 1> ---------------------------------------- ・IIS + perlis.dll  adiary.conf.cgi の最初の方に次のように記述してください。 ---------------------------------------- <$ENV.REQUEST_URI = ENV.PATH_INFO . '?' . ENV.QUERY_STRING> <$ENV.PATH_INFO = substr(ENV.PATH_INFO, length(ENV.SCRIPT_NAME))> <$NHP_mode = 1> ----------------------------------------  この環境では ImageMagick(画像縮小に必要)をインストールしても 使えません。画像縮小をご利用の方は、他の方法をご検討ください。 ・IIS(5.0以前) + perl.exe  adiary.cgi, upload.cgi, mail.cgi の2行目に、次を参考にして設置ディレクトリを 書くように追加してください。 ---------------------------------------- chdir("c:/Inetpub/xxxx/adiary/"); ----------------------------------------  adiary.conf.cgi の最初の方に次のように記述してください。 ---------------------------------------- <$ENV.REQUEST_URI = ENV.PATH_INFO . '?' . ENV.QUERY_STRING> <$ENV.PATH_INFO = substr(ENV.PATH_INFO, length(ENV.SCRIPT_NAME))> <$ENV.Is_IIS50_CGI = 1> ----------------------------------------  最後の行は Windows2000付属IIS(Ver5.0)のバグ対策です。  6.0以降は不要だと思いますが確認していません。  詳細情報 → http://adiary.blog.abk.nu/0178 -------------------------------------------------------------------------------- ●mod_perl Version 1 on Apache 1.3 での動作 -------------------------------------------------------------------------------- SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On という設定で動作することを確認しましたが、mod_perl1 は非推奨環境とさせて頂きます。 (ライブラリ差し替え時にリロードができません。  子プロセスが死ぬまで待つか、httpdを再起動させてください。) 不具合がありましたら、お知らせいただければ極力対応は致します。 -------------------------------------------------------------------------------- ●データベース運用のヒント(PostgreSQL編) -------------------------------------------------------------------------------- (1)PostgreSQL をインストールする。DBI, DBD::Pg もインストール。 (2)データベースを初期化(実行ユーザーがデータベースのsuper user。root不可) 最近のディストリビューションはデーモンを起動すれば勝手に作成してくれます。 標準の文字コードを指定する場合は次のようにする。 pgsql~$ initdb /data/directory pgsql~$ initdb /data/directory --locale=ja_JP.eucJP super user = pgsql として以下進めます。 (3)PostgreSQLデーモンを起動する。 (4)データベースを作成する。 文字コードを指定する場合は次のようにする。スーパーユーザー名と同一にする。 pgsql~$ createdb pgsql (5)コンソールに入る(このとき存在するデータベースが必要) pgsql~$ psql [database name] [user name] 省略時は共に実行したユーザーIDになる。 (6)コンソール上で、pgsql ユーザーにパスワードを設定する。 pgsql=# ALTER USER pgsql ENCRYPTED PASSWORD 'password'; (7)一度コンソールを脱出し、データベースディレクトリの pg_hba.conf を編集する。 変更前)local all all trust 変更後)local all all md5 truct などとなっている部分はすべて md5 に変更する。 (そうしないとパスワード未承認でつながってしまう) (8)変更したら、PostgreSQL デーモンを再起動する。 (9)再びコンソールに入る pgsql~$ psql pgsql pgsql (10)今回のシステム用のユーザーとデータベースを作成する。 pgsql=# CREATE USER adiary ENCRYPTED PASSWORD 'password'; pgsql=# CREATE DATABASE adiary OWNER=adiary ENCODING 'EUC-JP'; ※使用するデータベースの文字コードは EUC-JP で構成しましょう。  UTF-8版使用時は EUC-JP ではなく UTF-8 で構成しましょう。 ■コマンドのメモ) ・データベース一覧(文字コード付) pgsql~$ psql -l ■困ったときのマニュアル http://www.postgresql.jp/document/pg813doc/html/ http://www.postgresql.jp/document/pg813doc/html/sql-commands.html -------------------------------------------------------------------------------- ●データベース運用のヒント(MySQL編) -------------------------------------------------------------------------------- (1)MySQL をインストールする。DBI, DBD::mysql もインストール。(4.1でテスト済)  Fedora Core ならば console~$ yum -y install mysql-server perl-DBD-MySQL (2)データベースを初期化。 最近のディストリビューションはデーモンを起動すれば勝手に作成してくれます。 (3)MySQL デーモンを起動する。 console~$ /etc/init.d/mysqld start (4)MySQL に接続する。 console~$ mysql -u root console~$ mysql -u root -p ←パスワード指定あり (5)MySQLコンソールで rootパスワード を設定する mysql> use mysql; mysql> select host,user,password from user; ←確認 mysql> SET PASSWORD FOR root@localhost=PASSWORD('password'); mysql> SET PASSWORD FOR root@your.host=PASSWORD('password'); mysql> DELETE FROM user WHERE password=''; (6)adiary用のデータベース作成 mysql> CREATE DATABASE adiary DEFAULT CHARSET=ujis; (7)adiary用のデータベースユーザーを作成 mysql> GRANT all privileges ON adiary.* TO adiary@localhost IDENTIFIED BY 'password'; ※権限を制限したいときは下記でも構いません。 mysql >GRANT create,delete,drop,index,insert,select,update,alter ON adiary.* TO adiary@localhost IDENTIFIED BY 'password'; ※使用するデータベースの文字コードは EUC-JP で構成しましょう。  UTF-8 版使用時は EUC-JP ではなく UTF-8 で構成しましょう。  コード設定はこの辺を参照してください。http://wota.jp/ac/?date=20061011 ■コマンドのメモ) mysql> show tables; mysql> show databases; mysql> show variables like 'char%'; mysql> show create table table_name; ■my.cnf 設定メモ ---------------------------------------- [mysqld] default-character-set=ujis # MySQL 4.1.15/5.0.13以降 skip-character-set-client-handshake [client] default-character-set=ujis [mysql] default-character-set=ujis [mysqldump] default-character-set=ujis ---------------------------------------- ■困ったときのマニュアル http://dev.mysql.com/doc/refman/4.1/ja/index.html 日本語環境の設定 http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_38 ################################################################################ ■Special Thanks ################################################################################ 記載日 2006/06/xx せりかさん - アルバムシステム作者。Flash mp3 プレイヤー提供。 2006/06/xx かえでさん - 多量のバグ報告、テーマ作成 2006/06/xx アニ丸さん - バグ報告&snapshot人柱 2006/07/20 SimpleAPI - http://www.simpleapi.net/ http記法のサムネイル表示に使用しています 2006/07/21 Hatena - http://d.hatena.ne.jp/ GPLのはてなテーマ、公開APIの利用のほか、多大な影響を受けています 2006/11/15 GLANSHEさん/EasyNoise, http://aqua.s18.xrea.com/ 画像素材関係で大変お世話になっています。 2006/11/21 浅野さん - 多数のバグ報告+パッチを頂きました。 2006/12/26 yosioさん - MT形式インポート時のバグの原因を見つけて頂きました。 2006/12/28 最低人間さん - 記法のバグを指摘して頂きました。 2007/01/18 sabazoさん - はてぶのタイトルを変更して頂きました 2007/01/19 Jun@thrさん - 要望を頂きました 2007/02/06 液さん - 要望を頂きました 2007/02/18 sunkさん - 携帯アクセスモードについて貴重なご意見を頂きました。 2007/02/18 すずママさん - かんたんアクセスが分かりにくいとのご意見を頂きました。 2007/03/03 NonO_さん - バグ報告をして頂きました。 2007/04/20 なゆたさん - ご提案などをして頂きました。 2007/04/25 ひとぅさん - IIS/AN HTTPDで動作しない不具合と多数要望を頂きました。 (順次追加)