PHP5のインストール

最小構成のFreeBSDからなのでPHP導入前にいろいろとインストールする必要があります。

◇libcurlのインストール

ダウンロード
http://curl.haxx.se/

展開
# tar zxf curl-7.15.3.tar.gz

インストール
# cd /usr/local/src/curl-7.15.3
# ./configure
# make
# make install

◇libiconvのインストール

ダウンロード
http://www.gnu.org/software/libiconv/
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.9.1-patch.html

展開
# tar zxf libiconv-1.9.1.tar.gz

パッチ適用
# zcat libiconv-1.9.1-ja-patch-1.diff.gz | patch -p0

※私がDLしたパッチはテキストだったのでzcatでなくcat使いました。

インストール
# cd /usr/local/src/libiconv-1.9.1
# ./configure
# make
# make install
◇PHP5のインストールと設定

ダウンロード
http://www.php.net/

展開
# tar zxf php-5.1.4.tar.gz

インストール
# cd /usr/local/src/php-5.1.4
# ./configure
–enable-mbstring
–enable-mbregex
–enable-zend-multibyte
–prefix=/usr/local
–with-gd
–with-jpeg-dir=/usr/local/lib/
–with-png-dir=/usr/local/lib/
–with-zlib-dir=/usr/lib/
–with-dom
–with-curl
–enable-xslt
–with-xslt-sablot
–with-dom-xslt
–with-zlib
–with-apxs2=/usr/local/apache/bin/apxs
–with-mysql=/usr/local/mysql
–with-pgsql=/usr/local/pgsql

# make
# make install

実はこの時点でwgetが無いとかエラーが発生したが、強行してPHPの導入完了。
まだまだ足りないプログラムがあるみたいなのでそれは後でゆっくり。(makeは正常終了しているので関数が抜けているとかは無いと思う)

Apacheのmime.typesに下記を追加

application/x-httpd-php php
application/x-httpd-php-source phps

Apacheを再起動
# /usr/local/apache/bin/apachectl restart

追記:
この直後にwgetを入れてmake installさせました。その時PEAR関連でアップデータを取り込んでいました。なるほどそういうことなんですね。

◇wgetのインストール

ダウンロード
http://www.gnu.org/software/wget/

展開
# tar zxf wget-1.10.2.tar.gz

インストール
# cd /usr/local/src/wget-1.10.2
# ./configure
# make
# make install

FreeBSDにGDをインストール

PHPをインストールする前段階としてGDをインストールします。

◇libXML2のインストール(PHP5に必要)

ダウンロード
http://xmlsoft.org/

展開
# tar zxf libxml2-2.6.24.tar.gz

インストール
# cd /usr/local/src/libxml2-2.6.24
# ./configure
# make
# make install

◇jpeg-6bのインストール

ダウンロード
http://quox.org/install/graphics/jpeg-6b.html

展開
# tar zxf jpegsrc.v6b.tar.gz

インストール
# cd /usr/local/src/jpeg-6b
# ./configure –enable-shared –enable-static
# make
# make install

◇libpngのインストール

ダウンロード
http://www.libpng.org/pub/png/libpng.html

展開
# tar zxf libpng-1.2.10-no-config.tar.gz

インストール
# cd /usr/local/src/libpng-1.2.10
# cp scripts/makefile.linux Makefile
# make
# make install

◇zlibのインストール

ダウンロード
http://www.zlib.net/

展開
# tar zxf zlib-1.2.3.tar.gz

インストール
# cd /usr/local/src/zlib-1.2.3
# ./configure
# make
# make install

◇gdのインストール

ダウンロード
http://www.boutell.com/gd/

展開
# tar zxf gd-2.0.33.tar.gz

インストール
# cd /usr/local/src/gd-2.0.33
# ./configure
# make
# make install

…とうまく行くはずだが、素BSDで./configureするとどうもMakefileの作成がちょっと失敗しているのか、コンパイルオプションにjpegライブラリのパスが入ってなくてエラーになりました。orz…

で下記コマンドをmakeする前に発行することで回避

# setenv INCLUDES -I/usr/local/include

いろいろあるなぁ…

BINDの導入(5)

自動起動の準備
元々FreeBSDの初期インストール時にbindがインストールされていたためBIND用ユーザーが存在するか確認

# grep bind /etc/passwd
bind:*:53:53:Bind Sandbox:/:/usr/sbin/nologin

# grep bind /etc/group
bind:*:53:

自動起動用にrc.confに下記を追加

# ee /etc/rc.conf
named_enable=”YES”
named_program=”/usr/local/sbin/named”
named_flags=”-u bind”
named_pidfile=”/var/run/named/named.pid”

pidファイルの場所を変更(記述なしだと/var/run/直下)
# ee /etc/named.conf
pid-file “/var/run/named/named.pid”;

既存bindの残骸を削除
# rm -rf dev
# rm -rf etc
# rm -rf var
# rm -rf /etc/namedb

BINDはrootではなく専用ユーザー(bind)で使用するためパーミッションの問題を解決する
# mkdir /var/run/named
# chown bind:bind /var/run/named

これで行けるかと思ったら、全く起動の気配なし、さらに/etc/rc.d/namedを発見。
これは既存BINDの物だった為削除して作り直し

#!/bin/sh
case “$1” in
‘start’)
/usr/local/sbin/named -u bind
;;
‘stop’)
kill `cat /var/run/named/named.pid`
rm -f /var/run/named/named.pid
;;
*)
echo “Usage: $0 { start | stop }”
exit 1
;;
esac
exit 0

ここで何度rebootしてもbindが起動しない。/var/log/messages見ても起動かけた形跡すらなし。

このBINDはソースコンパイル物なので/usr/local/etc/rc.d/named.shとしての導入が正解でした。
/etc/rc.d/namedだと何度試みても起動しないのでハマった。この辺の仕組みが良くわからないなぁ。

ここで追試としてrc.confでNOにしてrebootしたらどうなるのだろうか?

# ps -aux | grep named
bind 504 0.0 2.6 4076 3224 ?? Is 4:05AM 0:00.03 /usr/local/sbin/named -u
root 556 0.0 0.2 348 228 p0 R+ 4:06AM 0:00.00 grep named

起動しましたー!!!えぇ!?何それ!?rc.confの意味無さすぎ…。