################################################################################
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で動作しない不具合と多数要望を頂きました。
(順次追加)