PHP3で作ったソースとPHP4で作ったソースを両方ともApacheのPHPインタプリタで実行したいと考え、インストールを試みた。PHP3とPHP4共にグラフィックライブラリを必要とするため、ライブラリも同時にコンパイルすることとした。OSは、以下の3つにインストールを試みたので、方法を掲載する。
Laser5Linux6.5
FreeBSD4.2R
Solaris8
この中で、Solaris8については少々厄介だったので、それも含め説明する。
また、ここではPostgreSQL7を使ったのでDBを使用することを前提として説明する。PostgreSQLのバージョンは、
postgresql-7.1.2 である。
php-4.0.6
php3.0.18
freeetype-1.3.1
gd-1.8.4
libpng-1.2.0
jpegsrc.v6b
zlib-1.1.3
ソースの解凍先は、全て/usr/local/srcとして説明する。
1.インストールをはじめる前に
(1) 既存のバイナリのアンインストール
インストールはソースをコンパイルするので、あらかじめ同じモジュールのバイナリがインストールされている場合は、アンインストールすること。
(2) Apacheの停止
重要 : Apacheが動いている場合は必ず止めておく。
2.zlibのコンバイル、インストール
# tar zxvf zlib-1.1.3.tar.gz
# cd zlib-1.1.3
# ./configure --enable-shared
エラーがなければ、
# make install
3.libpngのコンパイル、インストール
# tar zxvf libpng-1.2.0
# cd libpng-1.2.0
scriptsフォルダの中にMakefileがある為、シンボルリンクを張る(使用のOSに合わせてMakefileを選択すること)。この場合は、Linuxを選択している。
# ln -s scripts/makefile.linux Makefile
# make install
4.libjpegのコンパイル、インストール
# tar zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --enable-shared --enable-static
エラーがなければ、
# make install
5.freetypeのコンパイル、インストール
重要 : freetypeをインストールする前に、XFree86ライブラリがインストールされているか確認すること!これがないと、コンパイル中にエラーが出る。
# tar zxvf freetype-1.3.1.tar.gz
# cd freetype-1.3.1
# ./configure --enable-shared --enable-static
エラーがなければ、
# make
# make install
6.gdのコンパイル、インストール
# tar zxvf gd-1.8.4.tar.gz
# cd gd-1.8.4
Makefileを内容を以下のように編集する。
# vi Makefile
省略
INCLUDEDIRS=-I. -I/usr/include/freetype2
-I/usr/include/X11 -I/usr/X11R6/include/X11
-I/usr/local/include
を以下に訂正。
INCLUDEDIRS=-I. -I/usr/local/include/freetype
-I/usr/include/X11 -I/usr/X11R6/include/X11
-I/usr/local/include
省略
# make install
7.PHP4のコンパイル、インストール
# tar zxvf php-4.0.6.tar.gz
# cd php-4.0.6
# ./configure --with-pgsql --enable-track-vars
\
--with-apxs=/usr/local/apache/bin/apxs --with-mysql=no \
--enable-versioning --enable-trans-sid --with-gd=/usr/local \
--with-png-dir=/usr/local/src --with-jpeg-dir=/usr/local/src \
--with-zlib-dir=/usr/local/src --with-ttf --enable-mbstring \
--enable-mbstr-enc-trans
エラーがなければ。
# make
# make install
初期化ファイルを作成。カレントフォルダから、
# cp php.ini-dist /usr/local/lib/php.ini
8.PHP3のコンパイル、インストール
# tar zxvf php-3.0.18.tar.gz
# cd php-3.0.18
# ./configure --with-pgsql --enable-track-vars
\
--with-apxs=/usr/local/apache/bin/apxs \
--enable-i18n --enable-mbregex --enable-versioning \
--with-gd=/usr/local --with-ttf
重要 : ここで、PHP4とPHP3の共有化のみそは、両方のパラメータに”--enable-versioning”をいれること!
エラーがなければ、
# make
# make install
初期化ファイルを作成。カレントフォルダから、
# cp php3.ini-dist /usr/local/lib/php3.ini
ここで、Solaris8の場合のみエラーが発生した。makeの時に以下のエラーである。
functions/php3_pgsql.h:46:
libpq-fe.h: No such file or directory
functions/php3_pgsql.h:47: libpq/libpq-fs.h: No such file or directory
make: *** [internal_functions.o] Error 1
これは、単にヘッダのパスが見つからないと怒られている。したがって、以下のようにする。
# cp -R /usr/local/pgsql/include/*
/usr/local/src/php-3.0.18/functions/
これで、一応makeエラーはなくなったが、今度は最終的にApacheが起動しない。まともなエラーログも出力されず動かないので、さすがにむかつき状態であきらめて以下の方法で再コンパイルを試みた。
# make distclean
# ./configure --with-pgsql --enable-track-vars
--with-apxs=/usr/local/apache/bin/apxs \
--enable-i18n --enable-mbregex --enable-versioning --without-gd
# make
# make install
つまり、Solaris8はPHP3のみグラフィックライブラリのインクルードをあきらめたのであった(T.T)。
9.httpd.confの編集
apacheのhttpd.confを編集する。
# cd /usr/local/apache/conf
# vi httpd.conf
省略
AddType application/x-tar .tgz
AddType image/x-icon .ico
AddType application/x-httpd-php3
.php3
AddType application/x-httpd-php
.php
AddType application/x-httpd-php-source .phps .php3s
省略
赤文字の部分を追加する。
10.ld.so.confの編集
ld.so.confの最後に以下のパスを追加する。
# vi /etc/ld.so.conf
省略
/usr/local/lib
/usr/local/pgsql/lib
編集が終わったら、以下を実行
# ldconfig
11.Apacheの再起動
# /usr/local/apache/bin/apachectl restart
以上
|