[PHP-users 3395] Solaris8+Apache+PHP3+MySQLでインストールエラー

朝倉 誠 php-users@php.gr.jp
Wed, 07 Nov 2001 20:48:00 +0900


はじめまして、朝倉と申します。
質問なのですが、Solaris8(sparc)+Apache+PHP3+MySQLを
Apacheのmakeでエラーになってしまいます。
Apache単体でのコンパイルはうまくいき、現在動作しております。


環境は:
solaris8 (SPARC)
apache_1.3.20
mysql-3.23.44(source)
php-3.0.18-ja-2

/usr/local/src/mysql-3.23.44・・・解凍したmySQL
/usr/local/src/apache_1.3.20・・・解凍したapache_1.3.20
/usr/local/src/php-3.0.18-i18n-ja-2・・・解凍したコンパイル済php-3.0.18

以下の手順でコンパイル&インストールしています。
ほとんどINSTALLに書かれている「QUICK INSTALL」どおりです。

----- 以下インストール手順 -----
/usr/local/apache/bin/apachectl stop

cd /usr/local/src
cd apache_1.3.20
./configure
make
make install

cd ../mysql-3.23.44
./configure --prefix=/usr/local/mysql
make
make install

cd ../php-3.0.18-i18n-ja-2
./configure --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.20 --enable-track-vars --enable-mbregex --eneble-i18n
make
make install

cd ../apache_1.3.20
./configure --activate-module=src/modules/php3/libphp3.a
make
----- ここまでインストール手順 -----

で、ここのmakeでエラーになります。

----- 以下エラーメッセージ -----
gcc -c  -I./os/unix -I./include   -DSOLARIS2=280 -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite -DNO_D
L_NEEDED `./apaci` modules.c
gcc -c  -I./os/unix -I./include   -DSOLARIS2=280 -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite -DNO_D
L_NEEDED `./apaci` buildmark.c
gcc  -DSOLARIS2=280 -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED `./apaci`    \
      -o httpd buildmark.o modules.o  modules/php3/libphp3.a  modules/standard/libstandard.a  main/l
ibmain.a  ./os/unix/libos.a  ap/libap.a regex/libregex.a lib/expat-lite/libexpat.a  -R/usr/local/mys
ql/lib/mysql  -L/usr/local/mysql/lib/mysql -Lmodules/php3 -L../modules/php3 -L../../modules/php3 -lm
odphp3                        -lpam -lm -lsocket -lnsl  -lresolv  -lsocket -lnsl -lgdbm
modules/php3/libphp3.a(mysql.o): In function `_free_mysql_result':
/usr/local/src/php-3.0.18-i18n-ja-2/functions/mysql.c:182: undefined reference to `mysql_free_result'
modules/php3/libphp3.a(mysql.o): In function `_close_mysql_link':
/usr/local/src/php-3.0.18-i18n-ja-2/functions/mysql.c:196: undefined reference to `mysql_close'

〜この間には各モジュール(mysql_xxxxx)毎に
「undefined reference to `mysql_xxxxx'」と直前のエラーのように出てきます〜

collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `target_static'
Current working directory /usr/local/src/apache_1.3.20/src
*** Error code 1
make: Fatal error: Command failed for target `build-std'
Current working directory /usr/local/src/apache_1.3.20
*** Error code 1
make: Fatal error: Command failed for target `build'
----- ここまでエラーメッセージ -----



自分で気がついたことは、
エラーメッセージの途中のこの部分
------------------------------
gcc  -DSOLARIS2=280 -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED `./apaci`    \
      -o httpd buildmark.o modules.o  modules/php3/libphp3.a  modules/standard/libstandard.a  main/l
ibmain.a  ./os/unix/libos.a  ap/libap.a regex/libregex.a lib/expat-lite/libexpat.a  -R/usr/local/mys
ql/lib/mysql  -L/usr/local/mysql/lib/mysql -Lmodules/php3 -L../modules/php3 -L../../modules/php3 -lm
odphp3                        -lpam -lm -lsocket -lnsl  -lresolv  -lsocket -lnsl -lgdbm
------------------------------
の最後に「-lmysqlclient」が出ないところが原因のように感じております。

apacheのmakeでこけてますが、phpのconfigure/makeが怪しいように感じるのです。
理由はphpのMakefileの以下の部分
------------------------------
APXS_LDFLAGS = -Lmodules/php3 -L../modules/php3 -L../../modules/php3 -lmodphp3   -lpam -lm -lsocket
-lnsl  -lresolv
------------------------------
に「-lmysqlclient」がないからです。



何かわかる方、同様の経験をなさった方おられましたら
アドバイスをよろしくお願いいたします

-- 
朝倉 誠 <asakura@ken.or.jp>