Linux(Debian)でソースからPHP(5.1.4)をインストールしようとしていますが、以下のエラーが出てconfigureで失敗します。


root# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --enable-mbstring --with-zlib-dir=/usr/include

~略~
checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... no
checking for mysql_close in -lmysqlclient... no
checking for mysql_error in -lmysqlclient... no
configure: error: mysql configure failed. Please check config.log for more information.

config.logは以下にアップロードしました。
http://slashmall.net/config.log

初めはMySQLのLinux (x86, glibc-2.2, "standard" is static, gcc)をインストールしましたがここ(http://bugs.php.net/bug.php?id=35848)を見るとglibcのバージョンが間違っていたらしく(glibc-2.3だった)、もうひとつのLinux (non RPM, Intel C/C++ compiled, glibc-2.3) の方を再度インストールしましたが、エラーが少し増えただけに終わりました。

何が間違っているのでしょうか。よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:2006/06/01 13:52:45
  • 終了:2006/06/01 15:58:35

回答(3件)

id:Kumappus No.1

くまっぷす回答回数3784ベストアンサー獲得回数1852006/06/01 14:34:23

ポイント27pt

DebianだといいながらMySQLのLinux、もうひとつのLinuxをインストールしたいう意味がよくわからないです。

少なくともlogを見る限り、Intel Compilerとそのライブラリがないと動かない…と言ってますね。他のエラーもあるかもしれませんが、

undefined reference to `_intel_fast_memset'

などのエラーが多量に出ていますから。

1)今実際に動かしているLinuxはDebianのバージョンですか?

2)同じくgcc,glibcのバージョンは?

あと、DebianでPHP5を使いたいのならば

http://packages.debian.org/unstable/web/php5

unstableですがパッケージがあるのでこちらを導入した方が早いと思います。

id:akkun_choi

すいません、MySQLの"Linux (x86, glibc-2.2, "standard" is static, gcc)"用のバイナリという意味でした。

1) バージョンはわかりませんがDebianです。

2) gccは4:3.3.5-3、glibcは2.3.2.ds1-22sarge3です。apt-getで調べた限りglibcもgccもbinutilsも最新版でした。

unstableっていうのはどれぐらい安心できるのでしょうか。最終手段として使ってみます。

2006/06/01 15:15:40
id:Marin_MTB No.2

Marin_MTB回答回数40ベストアンサー獲得回数52006/06/01 14:33:00

ポイント27pt

config.logを見る限りだとMySQL関連ライブラリのシンボルを参照できないと言うエラーが鬼のように吐かれています。

可能性ですが、PHPをインストールしようとしているサーバのLinker(ld)がMySQLのライブラリを上手く解釈できていないと思われます。

その原因は3つ考えられます。

・サーバのgcc/binutilsが古い

 →たまにGNUldでこのようなケースが見られます。バージョンアップで解決するかも?

・MySQLのライブラリがGNUldに対応していない

 →MySQLをソースからコンパイルし直すか、gccでコンパイルされたものに入れ替えてみる。

  (ちなみに、今入っているのはIntelのccでコンパイルしたものみたいですが)

・LDFLAGSを変える。

  undefined reference to `_intel_fast_memcpy' when using intrinsics - Intel® C++ Compiler - Intel® Software Network Forums

 →上記URLを参照するに、LDFLAGSの-lcのまえに-lircを加えなさいとあり、それで解決できるかもです。(根本的には「IntelのLinkerを使いなさい」と書いてありますが…)

id:akkun_choi

http://dev.mysql.com/downloads/mysql/5.0.html

この最後の方に「バイナリ版使った方が最大のパフォーマンスがでるよ」とあるのでソースからコンパイルはちょっとためらっているのです…。これしかないんですかね。

LDFLAGSを変えるっていうのはPHPのconfigureを書き換えないといけない?

2006/06/01 15:26:47
id:Kumappus No.3

くまっぷす回答回数3784ベストアンサー獲得回数1852006/06/01 15:17:41

ポイント26pt

あー、すみません 意味がわかった…

まず、今はMySQLのIntel library入りのものを入れてしまったんですね。これは動かないでしょう、というかglibcから何からいろんなlibを対応のものに入れ換えないといけなくなると思いますので。

拾ってきたPHPが要求しているライブラリがとにかく今入っているMySQL関連に入ってないんでしょう。Debianはわりとアップデートが遅い(その代わりチェックがしっかりしている)ので、部分的にソースを拾ってきてビルドすると確かに問題は起きやすいかもしれません。

なのでとりあえずなんとかしたいということであればMartin_MTBさんのおっしゃるようにMySQLも含めてソースからビルドしなおすでも行けそうに思いますが、やはりパッケージを探して入れてみる方がいいと思います。

試していないので何とも言えませんが

http://www.linuxcompatible.org/PHP5_for_Debian_available_s31809....

http://www.sgtpepper.net/hyspro/diary/20050603.html

あたりにパッケージがあるようです。

id:akkun_choi

このバイナリも間違いだったのか…。

お言葉通りパッケージ→ダメならソースからビルドしてみようと思います。

どうもありがとうございます!

2006/06/01 15:55:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません