Vine Linux 4.2 でWebアプリサーバ構築

2008年10月15日

お断り

これは芝が使っている環境であり、唯一最高の環境とは言えません。 ここでは Vine4.2 + MySQL 5.0.51 + Apache 2.2.8 + PHP 5.2.5 環境を構築したときのメモを公開します。 基本的に,「PHP Webアプリケーションサーパーサンプル活用編第2版」(KJ/田中ナルミ,ソフトバンククリエイティブ発行,2008/7/20)を参照しています。

ソフトのコンパイルとインストール

UNIX系ソフトのコンパイルとインストールの基本的手順は となっている。

使用ソフトとコンフィグオプション

ソフト名バージョンコンフィグオプションなど
MySQLmysql-5-0.51a 新規ユーザとしてmysqlを登録。mysqlグループを追加し,そこにユーザmysqlを加える。

./configure --prefix=/インストール先指定/mysql --with-charset=ujis --with-extra-charsets=all --with-mysql-user=mysql

※ 参考書では--without-readlineも付けることになっていたが,私の環境では通らず付けなかった。--with-の間違い?
Apache2httpd-2.2.8 ./configure --enable-so

デフォルトインストールでドキュメントルートは/usr/local/apache2/htdocs,各種設定ファイルは/usr/local/apache2/conf。
設定ファイルフォルダ中のhttpd.confに以下の変更を加えた。

行頭の#を外して有効にしたもの
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Include conf/extra/httpd-userdir.conf
これはユーザのホームフォルダ以下のhtmlフォルダを有効にするために必要。ユーザホームフォルダ自体のパーミッションに+xを忘れずに。

書き加えたもの
AddHandler php5-script .php
AddType application/x-httpd-php .php

zlibzlib-1.2.3 ./configure --shared
libpnglibpng-1.2.28 ソースファイル展開後,ソースディレクトリに移動して
ln -s scripts/makefile.linux makefile

その後makefileを編集した。
ZLIBLIB=/usr/local/lib この行の先頭の#を外して
ZLIBINC=/usr/local/include この行の先頭の#を外して
#ZLIBLIB=../zlib この行の先頭に#を付けた
#ZLIBINC=../zlib この行の先頭に#を付けた

後はmake,make installを実行。

libjpegjpegsrc.v6b ./configure --enable-shared

make,make installで /usr/local/man/man1フォルダが無いエラーが出たので,同フォルダを手動で作ってから再度 make install

FreeTypefreetype-2.3.5 ./configure --enable-shared

make,make installで /usr/local/include/freetype2/freetype/internalフォルダが無いエラーが出たので,同フォルダを手動でつく手から再度 make install。

GDgd-2.0.35 ./configure

makeでfreetype内のfreetype.hを検出できないエラー発生。これは参考書に記述が無かったので困った。いろいろ試した結果,/usr/local/include/freetype以下にfreeetype.hなどのファイルがあれば良いことに気づいたため,/usr/local/include/freetype2/freetypeフォルダを/usr/local/include/freetypeにシンボリックリンクでつないだ。
/usr/local/includeに移動してから ln -s /usr/local/include/freetype2/freetypeを実行。

その後./configure,make, make install。

OpenSSLopenssl-0.9.8 ./configure

make,make install。

libxml2libxml2-2.6.32 これは参考書には記載が無かったが,この後のPHPのコンパイル時にlibxml2が無いエラーが出たため,ソースをネットで入手してインストールした。

./configure --prefix=/usr/local
make,make install

PHPphp-5.2.5 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-jpeg-dir=/usr/local/lib --with-freetype-dir=/usr/local/lib --with-gd-native-ttf --enable-ftp --with-openssl

※ 参考書ではcurlをインストールした上で--with-curlも付けることになっているが,私は使う必要がないので付けなかった。

その後,ソースディレクトリにあったphp.ini-distを/usr/local/lib/php/php.iniとしてコピーして,

include_path = ".:/usr/local/lib/php" 環境卯に合わせて書き換えた
mbstring.language = Japanese 行頭の;を外した

make,make install

芝研究室トップに帰る