※この記事はページリニューアル以前の記事です。そのため表示の崩れや、リンク切れなどを含む可能性があります。(順次修正予定)
そろそろ 2系列入れてみようと思った
なんとなく移行する意味を見つけられないまま、だらだらと1.3系列を使ってきたけど、もしかしたら移行した後に2系列いいよ!って事があるかもしれない。それに「2系列はDAV以外に使ったことないのでわかりません」ってのもイヤだしね。
まぁ、そんな感じで移行します。
2系列って2つありますけど・・・
2.0系列と2.2系列があるけど、どっちがいいの?・・・まぁ、開発版ってわけじゃないし、数字のでかい方がいいんじゃね。
2.2系列入れることにしました。
インストール
まぁ、コンフギャオプションも良くわからんので、とりあえずモジュールはDSOとしてほとんど使えるような設定で。MPMはせっかくなので worker にした。
./configure \
--prefix={prefix} \
--enable-so \
--with-mpm=worker \
--enable-proxy=shared \
--enable-ssl=shared \
--enable-modules=most \
--enable-mods-shared=most
あとは普通に make -> make install の流れ。PHPもインストール
PHP-5.2.3を下記のオプションで入れました。./configure \
--prefix={prefix} \
--with-apxs2={apxs} \
--with-pgsql=/usr/local/pgsql \
--with-mysql=/usr/local/mysql \
--with-config-file-path={prefix} \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-ftp \
--with-openssl=/usr/local \
--with-imap-ssl=/usr/local \
--with-imap=/usr/local/imap \
--with-gd \
--with-pear \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-freetype-dir=/usr/local \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-zlib=/usr/local \
--with-libxml-dir=/usr/local \
--with-xsl=/usr/local \
--with-curl=/usr/local \
--with-mcrypt=/usr/local \
--enable-exif \
--with-tidy
1.3系列と異なるのは、"--with-apxs" が "--with-apxs2" になったことぐらいかな。私の場合、コンフギャのときに下記のようなエラーが。
configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
んー?っと途方に暮れていたら、 こちら に解決方法の記事がありました。記事のとおりに MySQL を下記のオプションで再構築。
./configure \
--prefix={prefix} \
--with-mysqld-user=mysql \
--with-extra-charsets=all \
--datadir={data_dir} \
--enable-thread-safe-client \
--with-charset=binary
これで問題なくインストールできました。Apache設定の移行
rewrite設定とか、1.3系列のものをそのままコピペしたんだけど問題ないみたい。設定ファイル自体も1.3系列と似た配置(?)になってるので違和感なく設定できました。
(2.0系列は設定ファイルが嫌な感じだった記憶がありますが・・・)
モジュールはデフォルトで全部読み込むようになってるので、使わないものはコメントアウトしましょう。
んで一箇所だけ、新規設定箇所。
MultiViews を設定しているディレクトリで ".cgi" の補完が行われない。。。
今までは"search.cgi"に対して"search"で問題なく動作していたのになぜですかー。
"hoge.html"は"hoge"で行くし、"fuga.php"も"fuga"で行く。"cgi"だけあっちけ状態だ。
・・・結論から言うと、公式ドキュメンテーションにちゃんと設定方法が書いてありました。
要約すると、ハンドラとフィルタに関連付けられた拡張子を補完対象に含めるには、明示的に許可設定を行わなくてはならないようです。
なので、".cgi"を補完して欲しいディレクトリに対して下記の設定を加えました。
MultiviewsMatch Handlers
これで、1.3系列と同じ運用が可能となりました。--
あとは、運用しながら、ちょこちょこやっていきます。