お約束:当局はいっさい関知せず。
手順:
http://www.debian.org/CD/jigdo-cd/
jigdoファイルのありか:
ftp://ftp.fsn.hu/pub/CDROM-Images/
ちなみにSidのイメージを持って来ようとしてもなぜかエラーが出て構築がコケる。
インストール手順:
http://www.nofuture.tv/linux/debian/install/
http://www.orca.med.or.jp/receipt/tec/woody/woody_install_jma.rhtml
素人にとっては、こういうドキュメントがあるとないとでは大違い。
NICは今回1枚だけ。
3comは2枚セットでキープしたいので、今回はIntel EtherExpress100で。
モジュール選択でドライバはEtherExpress/100を選択。
一応NAT系のフィルタは全部突っ込んでおく。
(ドライバ以外については、どうせカーネル再構築のときに 再度指定するんだし適当に。)
taskselではC/C++、標準鯖、jaパッケージのみ選択。
http://www-ana.ist.osaka-u.ac.jp/~t-eguti/linux/thinkpad_r31.html
みたまんま。
telnetとかfingerとかsmtpとかpop3とか閉じる。
参照:http://www2.i-e-c.co.jp/common1.html
aptでいれる。
その後、visudoコマンドを実行し、
# User privilege specification
root ALL=(ALL) ALL
となっていますので、この後に、
bar ALL=(ALL) ALL
といれるといいらしい。
これをやると、
ユーザーbarは、
sudo apt-get install なんたら
で、「ユーザーのパスワードによる認証で」root権限のコマンドが実行可能になる。
一見すごそうだが、
個人の管理のサーバで、そこまでする必要があるかどうかは微妙。
ただ、かける手間はたいしたことないのでまあやっとけ。
例によってaptで。
インストール時にconfの編集を「する」。
スタンドアロン動作。anonは開けない。
このインストールでwu-ftpdはきえてくれる。
proftpd.confの編集を。
鯖名を適当にする。
デフォルトのポートは普通過ぎるので開けるポートは変える。
(わたしゃよくやります。)
DefaultRoot ~/を追加。(みえすぎ対策)
telnetとかfingerとか。
apt-get removeで。
http://www2.i-e-c.co.jp/intro1.html
例によってaptで。
予備知識。
関連参照ディレクトリ、ファイル
設定ファイル:/etc/apache/httpd.conf
htmlファイル置き場:/var/www/以下。
cgiはhttpd.confでOptionsにExecCGIを指定したディレクトリに。
(普通はcgi-binとかでしょうかね。)
さてApacheはインストールしてからが大変なんですが。
/etc/apache/httpd.confをいろいろいじる。
日本語文字化け系1:
<IfModule mod_negotiation.c>日本語文字化け系2:
LanguagePriority ja en da nl et fr de el it pl pt pt-br ltz ca es sv
</IfModule>
冒頭にjaをもってくる。
AddDefaultCharset off無い腹を探られるのを防ぐ1:
offにしないとサーバのデフォルトフォントが設定されて日本語が以下略。
http://www.deer-n-horse.jp/linux/tips/apache.html無い腹を探られるのを防ぐ2:
index.htmlが無い場合のディレクトリ表示をさせない。
<IfModule mod_autoindex.c>
(略)
</IfModule>
の部分をコメントアウト...するのだが、
範囲が広くてコメントアウトをミスするので放置してたり。
んで、
LoadModule userdir_module /usr/lib/apache/1.3/mod_autoindex.so
もコメントアウト。
実際にはモジュールのロードさえ止めれば問題ないのだ。セキュリティレベルは下がるが。
http://www.deer-n-horse.jp/linux/tips/apache.html
ユーザーディレクトリのpublic_htmlより上のディレクトリを表示させない。
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
をコメントアウト。
さらに以下もコメントアウト。
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>
http://llama.logos.k.u-tokyo.ac.jp/~simokawa/archives/000134.html
ここは重要な情報が詰まっているが、あまりに詰まりすぎているので
読み解くには多少がんばる必要がある。
でも読むだけの価値はあるしいたずらにハードルが高いわけでもない。
つまり以下のパッケージをaptで拾って来い、と。
mysql-server
以前のdbをpurgeするか?みたいなこと聞かれたのでnoにした
boot時にmysqlを起動するか聞かれたのでyesにした
libdbi-perl(mysql-server入れたら入ってた)
libdbd-mysql-perl(mysql-server入れたら入ってた)
imagemagick
perlmagick
webmagick
なんかわからんが紙のサイズ聞かれたのでa4にした
libmagick5
(なんか知らんが上記パッケージいれたら入ってた)
libdps1
いるらしい。これ入れないとImage::Magickがつかえないぽ。
(http://www.rbdn.com/mt/archives/cat_1.html参照)
adminのパス設定
mysqladmin -u root password ルートのパスワード
データベースの作成
mysqladmin -p -u root create データベース名
MySQLにログイン
mysql -p -u root mysql
データベースに権限を持つユーザー(適当)を作成
mysql>grant select,insert,update,delete,create on データベース名.* to ユーザー名@localhost;
最後のセミコロンをわすれないように。
抜ける
mysql>exit
作ったユーザのパスワードを設定する
mysqladmin -u ユーザー名 password ユーザーのパスワード
Alias /mtt/ "/var/www/mt-cgi/"
<Directory "/var/www/mt-cgi">
AddHandler cgi-script .cgi
Options ExecCGI
Order Allow,Deny
Allow from all
</Directory>
<Location /mtt/db/>
Order Deny,Allow
Deny from all
</Location>
ただ、このLocationディレクティブは必要かどうかわからない。
なぜなら、MySQLは専用のファイル置き場をユーザーで用意する 必要がなさそうだからだ。
おそらくキモはDirectoryディレクティブで、 ここでcgiの実行許可とアクセス設定を行っている。
まあ、縁起物ということで。
必要になるディレクトリを掘る。
ディレクトリ構成だが、
プログラム置き場(mt-cgi)
構成要素置き場(mt-static)
ブログ置き場(mt)
の3つが最低必要。(カッコ内は例)
これ以外に、使用するデータベースによってはデータベース置き場が必要らしいが、 今回使用するMySQLではいらんらしい。
それぞれの名称は設定で指定することになるので適当に。
この構成が、調べている資料ごとにてんでバラバラで、
さらにパーミッションとかも絡むので困る。
というわけで、 上記3つのディレクトリは、すべて/var/www/の下におく。
もちろん、これを行うのは自分がそのサーバの管理者であることが必須となる。
ユーザーディレクトリ(/home/だれか/public_html)以下に置こうとすると、 cgiの実行権限やらsuEXECの設定やらなんやらでわけわからん。
というわけで
/var/www/mt-cgi/
/var/www/mt-static/
/var/www/mt/
の3つが必要になる。
mt-cgiの名前は、先にhttpd.confで追記したExecCGI属性ほかの設定で決まる。
他の名前や場所がよければ適当に。
/var/www/mt/は、パーミッションを777に変更しておくこと。
chmod 777 /var/www/mt
必要なアーカイブを取ってくる。
悲しいことにapt-getではインストールできないので手動である。
Movable Type本体:http://www.movabletype.org/
日本語化パッチ:http://rebecca.ac/milano/mt/archives/000168.html
日本語関連perl:http://search.cpan.org/CPAN/authors/id/D/DA/DANKOGAI/Jcode-0.82.tar.gz
念のため、解凍はすべてサーバ上で行う。
Windowsで解凍するとパーミッションなどが狂いそうだからだ。
解凍コマンドはtar zxvf。
他の場所で解凍をしてから上記ディレクトリにコピーしたほうが何かと安全。
さて、まずは本体を解凍する。
解凍したら、全部をmt-cgiに放り込む。
次に日本語化パッチを解凍する。
/var/www/mt-cgi/images/以下にlang-jaというディレクトリを作成する。
解凍した日本語化パッチの中のmt-ja/images/以下をさきほどのlang-ja以下にコピーする。
解凍した日本語化パッチの中のMT.utf8.patchを/var/www/mt-cgi/にコピーする。
パッチを当てる。
patch -p1 < MT.utf8.patch(実際には不等号は半角)
そして、日本語関連perlを解凍する。
解凍したらJcodeディレクトリまるごととJcode.pmを、/var/www/mt-cgi/extlib/以下にコピー。
次に、スタティックデータの再配置。
理由はよくわからないが、cgi実行権限を与えているmt-cgiディレクトリからは、 外部アクセスの可能性のある部分は切り出してしまう。
/var/www/mt-cgi以下の、
imagesディレクトリ、docsディレクトリ、styles.cssを /var/www/mt-static/に移動する。
こいつらがページのデザインに絡む部分。
はじめから場所を移動しないのは、 ひょっとしたら日本語パッチがこいつらを書き換えてるかもしれないと思ったから。
1)ソースがそのまま見えてしまった場合:mt.cfgの編集
MovableTypeの実行属性指定がうまくいっていない。
これは、httpd.confのどこかにとにかくエラーがある場合におこる。
MySQL関連のディレクティブを末尾に追加した場合、
httpd.confがエラーなしで実行できなければともかくコケる。
対策:とにかく記載ミスを見つけて防ぐ。
単に「apache」と打って実行した場合、
httpd.confにエラーがあればメッセージを表示してくれるので、 それを頼りにとにかくバグ潰す。
もちろん、実際のOptionsでのExecCGI指定周りが ミスっている場合もある。
2)きちんとcgiが実行されたが、足りないパッケージがあると言われた場合
なにかインストールぬけがあるぽい。
3)cgiも実行され、必要なパッケージは導入されていると言われた場合
次に進む。
CGIPathの設定(書き換え)mt-load.cgiの実行
CGIPath http://www.なんとか.jp/mt-cgi/
ここにはいわゆるurlとしてのMovable Type本体のパスを書く。
このへんはDNSやらバーチャルホストやらが絡むので、
まあがんばってちょ。
DataSourceのコメントアウト
MySQLを使用している場合はコメントアウトする。
SQL絡みの設定(追記)
さきのDataSourceのコメントアウトの後くらいに書くのがよさげ。
ObjectDriver DBI::mysql
Database データベース名
DBUser データベースユーザ名
ここのデータベース名、ユーザ名は、MySQLの設定で記載したもの。
SQL絡みの設定(別ファイル)
さらにmt.cfgとは別に、mt-db-pass.cgiに データベースのパスワードを記載する。
StaticWebPathの設定(書き換え)
StaticWebPath /var/www/mt-static/
この設定がなければMovableTypeはこのディレクトリを参照できない。
NoHTMLEntitiesの設定(書き換え)
NoHTMLEntities 1
文字化け対策。
ImageDriverの設定(書き換え)
ImageDriver ImageMagick
サムネイル画像関連設定。
PublishCharset(書き換え)
PublishCharset UTF-8
パッチのときもそうだが、UTF-8のほうがいろいろと便利らしい。
日本語カテゴリ表示への対応
基本設定>ウェブログの設定>アーカイブの設定>Category
テンプレートに「cat_<$MTCategoryID$>.html」(不等号は本来は半角) と記載。