結構はまったので、メモで残しておきます。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 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
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
--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
--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
--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
# make install 2>&1 | tee ../php-5.1.4.make-install.log
ピンバック: centOS5.2 64bitにphp5.2.9をソースから入れる | tonbyブログ