2012年5月15日火曜日

Macに入れたPHP・MySQLでつまづいた点

昨日・今日でMacにバイナリパッケージからApache・PHP・MySQLをインストールしてきましたが、単にインストールするだけなら特別問題もなくインストールできました。
Mac OS X(Lion)にApache2を手動でインストールする
Mac OS X(Lion)にPHP5.3を手動でインストールする
Mac OS X(Lion)にMySQLを手動でインストールする

本当にただ動かすためだけにインストールしてたんで
これからさらにPHP+MySQLを試みてたんですがエラーの連続でなかなかうまいこといきませんでした。
各バージョンの問題なのかOSバージョンの問題なのか
理由はいろいろなんでしょうがとりあえず調べるのに時間がかかったところだけ備忘録程度に。。。

phpizeでエラー
これはさっき書いたんで省略しますがmysqlのモジュールを追加しようと思ってこれをやってたんですが、結果追加モジュールからはうまく動いてくれませんでした。
# cd /usr/local/src/php-5.3.13
# cd ext/mysql
# phpize
# ./configure --with-mysql=/usr/local/mysql-5.5.24
# make
# make install

で結局、phpのconfigureから再コンパイルしてっとやってたんですがMySQLがうまく動いてくれません。というかmakeでエラーが出ました。
# cd /usr/local/src/php-5.3.13
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql-5.5.24
# make clean
# make

これを実行すると以下のエラー
Undefined symbols for architecture x86_64:
  "_res_9_init", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_check_record in dns.o
  "_res_9_search", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_check_record in dns.o
  "_res_9_dn_skipname", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_record in dns.o
  "_res_9_dn_expand", referenced from:
      _zif_dns_get_mx in dns.o
      _php_parserr in dns.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [libs/libphp5.bundle] Error 1

内容はよくわかりませんでした。
が、ぐぐった結果、.bash_profileを変更するということだったのでこんなかんじ。
# vi ~/.bash_profile
-----
export EXTRA_CFLAGS=-lresolv
-----
# source ~/.bash_profile

これで再度コンパイルからmakeを実行。
すると今度は以下のエラー
yld: Library not loaded: libmysqlclient.18.dylib
  Referenced from: /usr/local/src/php-5.3.13/sapi/cli/php
  Reason: image not found
/bin/sh: line 1: 94225 Trace/BPT trap: 5       ` if test -x "/usr/local/src/php-5.3.13/sapi/cli/php"; then /usr/local/src/php-5.3.13/build/shtool echo -n -- "/usr/local/src/php-5.3.13/sapi/cli/php -n"; if test "x" != "x"; then /usr/local/src/php-5.3.13/build/shtool echo -n -- " -d extension_dir=/usr/local/src/php-5.3.13/modules"; for i in bz2 zlib phar; do if test -f "/usr/local/src/php-5.3.13/modules/$i.la"; then . /usr/local/src/php-5.3.13/modules/$i.la; /usr/local/src/php-5.3.13/build/shtool echo -n -- " -d extension=$dlname"; fi; done; fi; else /usr/local/src/php-5.3.13/build/shtool echo -n -- "/usr/local/src/php-5.3.13/sapi/cli/php"; fi;` -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0' /usr/local/src/php-5.3.13/ext/phar/build_precommand.php > ext/phar/phar.php
make: *** [ext/phar/phar.php] Error 133

もぉよくわかりません。
とりあえず、ぐぐった結果、これまた.bash_profileを変更。。。
# vi ~/.bash_profile
-----
export DYLD_LIBRARY_PATH=/usr/local/mysql-5.5.24/lib:$DYLD_LIBRARY_PATH
-----
# source ~/.bash_profile

これで再度コンパイルからmakeを実行。
やっとエラーが消えました。

内容はよくわかりませんが、バージョンの問題なのかOSの問題なのか。。。

2012.5.17
こちらも参考程度にリンクつけときます。
Macに入れたPHP・MySQLでつまづいた点(続)



0 件のコメント:

コメントを投稿