在Linux编译PHP关联MySQL遇阻:无法找到MySQL安装路径
问题排查与解决
1. --with-pdo-mysql 参数路径错误
你给--with-pdo-mysql传的是/dir/mysql_64/bin,这是MySQL的可执行文件目录,但PHP的configure脚本需要的是MySQL的安装根目录(也就是包含include和lib子目录的路径)。正确写法应该是:
--with-pdo-mysql=/dir/mysql_64
configure会自动在该路径下查找include/mysql里的头文件,以及lib里的链接库。
2. --with-mysqli 参数的正确用法
添加--with-mysqli时提示版本不符,核心原因是没指定正确的mysql_config路径。PHP7.3编译mysqli扩展时,需要通过mysql_config脚本获取MySQL的版本和编译参数,所以参数要写成:
--with-mysqli=/dir/mysql_64/bin/mysql_config
这样configure会调用该脚本自动读取MySQL5.5的正确信息,解决版本检测不通过的问题。
3. 修正后的完整configure命令
把上述参数整合后,完整命令如下:
./configure --with-apxs2=/dir/utils/apache/bin/apxs \ --prefix=/dir/utils/php \ --with-config-file-path=/dir/utils/php \ --enable-force-cgi-redirect \ --disable-cgi \ --with-zlib \ --with-gettext \ --without-pear \ --with-pdo-mysql=/dir/mysql_64 \ --with-mysqli=/dir/mysql_64/bin/mysql_config
额外检查项
- 确认MySQL5.5已经完成源码编译安装,且
/dir/mysql_64/include和/dir/mysql_64/lib目录存在,包含mysql.h、libmysqlclient.so这类关键文件。 - 如果编译时提示库文件找不到,可先设置环境变量再执行
configure:export LD_LIBRARY_PATH=/dir/mysql_64/lib:$LD_LIBRARY_PATH export CFLAGS="-I/dir/mysql_64/include" export LDFLAGS="-L/dir/mysql_64/lib"
内容的提问来源于stack exchange,提问作者DysonC
相关产品推荐
相关产品推荐

