【问题标题】:Cannot find libmysqlclient under /usr. while build PHP 5.2 from source on Ubuntu 12.4在 /usr 下找不到 libmysqlclient。在 Ubuntu 12.4 上从源代码构建 PHP 5.2
【发布时间】:2012-06-21 08:23:12
【问题描述】:

我试图使用此配置从Ubuntu 12.4 64bit 上的源代码构建PHP 5.2.17

./configure --prefix=/opt/php5.2 --with-config-file-path=/opt/php5.2 --with-mysql 

但我不断收到此错误:

configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!

知道如何解决这个问题吗?

EDIT1:我最小化了配置命令,所以它只关注 mysql。我也在运行 64 位版本的 ubuntu。

EDIT2:尝试运行ldconfig -v |grep mysql,这是输出

# ldconfig -v |grep mysql
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Cannot stat /usr/lib/x86_64-linux-gnu/libnss_db.so: No such file or directory
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0
libmysqlpp.so.3 -> libmysqlpp.so.3.1.0

【问题讨论】:

  • 你需要告诉 configure 它的目录在哪里。 - 看起来这不是问题,而是 Google 请求:php configure: cannot find libmysqlclient(搜索:PHP 配置 libmysqlclient 路径)。
  • 你知道它在哪里吗?我试着找到它,结果如下:`./usr/share/doc/libmysqlclient-dev ./usr/share/doc/libmysqlclient18 ./usr/lib/x86_64-linux-gnu/libmysqlclient.so ./usr/ lib/x86_64-linux-gnu/libmysqlclient.a ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.18 ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.18.0.0 ./usr /lib/x86_64-linux-gnu/libmysqlclient_r.so ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.a ./usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0 ./usr/ lib/x86_64-linux-gnu/libmysqlclient.so.18 ...
  • @hakre 我将编辑问题并添加其他信息。
  • @GordonM 我完全知道不支持 5.2。但我必须在我的机器上安装它来支持旧脚本。我的问题不在于支持哪个版本。这只是在 ubuntu 12 上运行 5.2 版本。我设法在 ubuntu 11.10 上安装了 php5.2 和 php5.3
  • @fkniya:你不应该太在意一个反对票。有时这里的用户觉得这个问题不合适,或者你没有做足够的研究来研究这个问题。我认为重要的是你要注意问题和答案是通用的,例如添加一些更一般的信息,以便清楚您是如何解决错误消息的。

标签: php ubuntu installation


【解决方案1】:

感谢@hakre 的帮助。 这是我使用的命令,它有效:

sudo ./configure --prefix=/opt/php5.2 --with-config-file-path=/opt/php5.2 --with-mysql --with-libdir=/lib/x86_64-linux-gnu

【讨论】:

  • 你怎么知道一定是--with-libdir=/lib/x86_64-linux-gnu?我的意思是确切的路径。我只看到# ldconfig -v | grep mysql 输出的错误消息中的路径,但它也有其他路径。
  • 我知道我应该使用--with-libdir 参数并且只是尝试了该路径。
  • @hakre 使用locate libmysqlclient 找出您的文件在哪里,然后指定确切的位置。
  • 谢谢。如果它对任何人有帮助,请注意我的安装,locate 会在 /usr//lib/x86_64-linux-gnu 中显示它,但如果我在前面包含 /usr,它会说仍然丢失,所以它似乎使用了相对路径到 /usr。
  • 如果某人使用 RHEL 7(在我的情况下),libdir 路径是 --with-libdir=/lib64/
【解决方案2】:

也许对于一些可怜的人来说,这会起作用:

./configure --with-apxs2=/usr/sbin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

【讨论】:

  • 你救了我可怜的灵魂 :)
  • 谢谢!它也对我有用。被困在编译 php 5.3.29 以供 phpfarm 使用。它同时在 apache 上使用多个 php 引擎。这里有一些说明:gist.github.com/gmodarelli/5887778
  • 太棒了! Ubuntu14 上的 PHP v 5.3.27,我不得不稍微修改一下: ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd - -with-pdo-mysql=mysqlnd
  • 对于这个问题,我的解决方案是这个答案中的一个。在某些时候 --with-libdir=XXX 对我不起作用。
猜你喜欢
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 2015-01-21
相关资源
最近更新 更多