首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 編譯安裝錯誤:mysql configure failed 解決方案

     編輯:PHP 相關知識

錯誤現象

在編譯 PHP 時加入 --with-mysql 參數,configure 階段回報:

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 進一步顯示:

/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient

根本原因

系統為 64 位元(x86_64),MySQL 開發函式庫安裝在 /usr/lib64/mysql/,但 PHP 編譯腳本預設搜尋 /usr/lib/mysql/,導致找不到相容的 libmysqlclient。

解決方法

方法一:指定 LDFLAGS 環境變數(推薦)

export LDFLAGS="-L/usr/lib64/mysql"
./configure --with-mysql --with-mysqli --with-pdo-mysql ...(其他參數)

方法二:直接修改 Makefile

若已執行 configure 產生 Makefile,可手動編輯:

# 將
-L/usr/lib/mysql
# 改為
-L/usr/lib64/mysql

修改後重新執行 make。

方法三:建立符號連結(治標不治本)

ln -s /usr/lib64/mysql/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so
ln -s /usr/lib64/mysql/libmysqlclient.a  /usr/lib/mysql/libmysqlclient.a

驗證

重新執行 configure 後,應看到:

checking for mysql_close in -lmysqlclient... yes
checking for mysql_error in -lmysqlclient... yes

接著 make && make install 即可完成安裝。

補充說明

  • 同理,若使用 MariaDB 或 Percona Server,函式庫路徑可能不同,請以 mysql_config --libs 查詢正確路徑。
  • PHP 7.0 以上建議改用 --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 使用原生驅動,避免外部函式庫相依問題。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved