Permanent Link to How to compile PHP5 on 64bit Linux (CentOS)

結構はまったので、メモで残しておきます。64bit環境のCentOS で PHP5 をコンパイルしたのですが、Apache用のDSOモジュールを作るまでが大変でした。下記のような感じでオプション指定をしていますが、まぁ、細かいことはどうあれ、要は64bit環境ではCFLAGSを指定しないといかんらしい、ということです。何も指定しないと、libxml2 が32bit環境用にコンパイルされてしまうらしくて、soが生成できません。

– 64bit環境

# CC=gcc CFLAGS="-fPIC" \
./configure prefix=/usr/local/php \
 --with-apxs2=/usr/local/apache2/bin/apxs \
 --enable-mbstring \
 --enable-mbstr-enc-trans \
 --enable-mbregex \
 --enable-sockets \
 --with-mhash=/usr/local/lib \
 --with-mcrypt \
 --with-mysql=/usr/local/mysql \
 --enable-zend-multibyte \
 --disable-cgi \
 --enable-inline-optimization \
 --enable-sigchild –enable-exif –enable-ftp \
 --with-gd –with-zlib-dir=/usr/lib \
 --with-jpeg-dir=/usr/lib \
 --with-png-dir=/usr/lib \
 --with-freetype-dir=/usr/lib

必要かどうかわかりませんが、configureで作成されたlibtoolファイルを編集しておきました。

# vi libtool

dlopen_support=yes
dlopen_self=yes
dlopen_self_static=no

コンパイルのログはとっておきましょう。

# make 2>&1 | tee ../php-5.1.4.make.log

コンパイルが終わってから、

# cat ../php-5.1.4.make.log | grep libphp5.la 

で表示されるかなり長いコマンドをコピーして、編集します。

/bin/sh /usr/local/src/php-5.1.4/libtool \
 --silent --preserve-dup-deps --mode=link \
gcc \
(略)
-o libphp5.la

/bin/sh /usr/local/src/php-5.1.4/libtool \
--silent --preserve-dup-deps --mode=link \
gcc -shared \
(略)
-o libphp5.so

これを実行します。

/bin/sh /usr/local/src/php-5.1.4/libtool \
--silent --preserve-dup-deps --mode=link \
gcc -shared \
(略)
-o libphp5.so

出来上がったファイルを /usr/local/apache2/modules/ へ移動してから、make install すればOKです。

# mv libphp5.so /usr/local/apache2/modules/
# make install 2>&1 | tee ../php-5.1.4.make-install.log

Permanent Link to How to compile PHP5 on 64bit Linux (CentOS)」への1件のフィードバック

  1. ピンバック: centOS5.2 64bitにphp5.2.9をソースから入れる | tonbyブログ

コメントは停止中です。

同じカテゴリの記事: Open Source
同じカテゴリの記事: Program