php5.2とmysqlの間の互換性の問題を解決する

WBOY
リリース: 2016-06-20 12:33:01
オリジナル
993 人が閲覧しました

最近、Alibaba Cloud の初心者に適した製品であるワンクリック インストール パッケージ (LAMP、LAMP) の開発に取り組んでいます。その過程で、Ubuntu14.04 システムで Apache2.2+php5.2+mysql5.1 をテストしているときに、php のコンパイルとインストール時に問題が発生しました。

エラー内容:

ext/zip/lib/.libs/zip_dirent.o: In function `memset':/usr/include/x86_64-linux-gnu/bits/string3.h:81: warning: memset used with constant zero length parameter; this could be due to transposed parametersext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_reads_from_master':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:44: undefined reference to `mysql_disable_reads_from_master'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_rpl_parse':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:60: undefined reference to `mysql_disable_rpl_parse'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_reads_from_master':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:77: undefined reference to `mysql_enable_reads_from_master'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_rpl_parse':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:94: undefined reference to `mysql_enable_rpl_parse'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_master_query':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:112: undefined reference to `mysql_master_query'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_parse_enabled':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:131: undefined reference to `mysql_rpl_parse_enabled'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_probe':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:148: undefined reference to `mysql_rpl_probe'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_query_type':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:169: undefined reference to `mysql_rpl_query_type'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_slave_query':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:208: undefined reference to `mysql_slave_query'collect2: error: ld returned 1 exit statusmake: *** [sapi/cli/php] Error 1
ログイン後にコピー

この問題については、Baidu や Google でいろいろ検索しましたが、解決策は見つかりませんでした。mysql のバージョンのバグであるということだけでした。仕方なく mysql5.1bug に関する情報を探したところ、コンパイル済みファイルを変更する必要があることがわかりました。

php をコンパイルするときは、 --with-mysqli パラメーターを追加しないでください。最初に php をコンパイルしてインストールしますが、mysql と組み合わせることはできません。次に、php インストール パッケージ内のファイル ext/zip/lib/zip_dirent.c を変更し、memset(&tm, sizeof(tm), 0) を memset(&tm, 0, sizeof(tm)); に置き換えます。 🎜 >次に、 cd ext/mysqli/

/php/bin/phpize

./configure --with-php-config=/php/bin/php-config --with-mysqli=/ mysql -5.1.73/bin/mysql_config


make

make install

でOKです。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート