【问题标题】:Compiling php with curl, where is curl installed?用curl编译php,curl安装在哪里?
【发布时间】:2011-06-26 00:09:20
【问题描述】:

--with-curl=编译php时需要指定目录

curl 二进制文件位于/usr/bin/curl

curl -V 给我

curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

locate curl给我

/usr/bin/curl
/usr/lib/libcurl.so.3
/usr/lib/libcurl.so.3.0.0
/usr/lib64/libcurl.so.3
/usr/lib64/libcurl.so.3.0.0

删除 /usr/share/... 和其他不相关的文件

更新

试过--with-curl=/usr/lib64--with-curl=/usr/lib 虽然我很确定它是 64 位的。

checking for cURL support... yes
checking if we should use cURL for url streams... no
checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution -
    easy.h should be in <curl-dir>/include/curl/

解决方案

PHP 需要 curl-devel

【问题讨论】:

  • 对于 64 位 ubuntu 17.** 及之后,curl 被移动到 /usr/include/x86_64-linux-gnu/curl,所以只需创建一个符号链接 cd /usr/include sudo ln -s x86_64-linux-gnu/curl
  • @minhajul 的评论是我的解决方案 //

标签: php linux curl installation compilation


【解决方案1】:

这些都不允许您在启用 cURL 的情况下编译 PHP。

为了使用 cURL 进行编译,您需要 libcurl 头文件(.h 文件)。它们通常位于/usr/include/curl。它们通常捆绑在单独的开发包中。

例如,在 Ubuntu 中安装 libcurl:

sudo apt-get install libcurl4-gnutls-dev

或 CentOS:

sudo yum install curl-devel

那么你可以这样做:

./configure --with-curl # other options...

如果您手动编译 cURL,您可以指定不带 libinclude 后缀的文件的路径。 (例如:/usr/local 如果 cURL 标头在 /usr/local/include/curl 中)。

【讨论】:

  • centos 上是 yum install curl-devel,否则是正确答案!谢谢!
  • @gAMBOOKa:在编译 PHP(或任何 C 程序)时,请始终牢记,对于要编译的任何扩展,您都需要适当的 devel 包使用外部库。
  • 在 Ubuntu 上是 sudo apt-get install libcurl4-gnutls-dev
  • 在 CentOS 上看起来像 yum install libcurl-devel
  • libcurl4-gnutls-dev 包不包含 curl 头文件,您需要安装 libcurl4-openssl-dev 代替: $sudo apt-get install libcurl4-openssl-dev
【解决方案2】:

适用于 Ubuntu 17.0 +

添加到上面的@netcoder 答案, 如果您使用的是 Ubuntu 17+,安装 libcurl 头文件是解决方案的一半。 ubuntu 17.0+ 中的安装路径与旧 Ubuntu 版本中的安装路径不同。安装 libcurl 后,仍然会出现“找不到 cURL”的错误。您需要执行一个额外的步骤(正如@minhajul 在 OP 评论部分中所建议的那样)。

在 cURL 安装文件夹的 /usr/include 中添加符号链接(Ubuntu 17.0.4 中的 cURL 安装路径为 /usr/include/x86_64-linux-gnu/curl)。

我的服务器运行的是 Ubuntu 17.0.4,启用 cURL 支持的命令是

sudo apt-get install libcurl4-gnutls-dev

然后创建一个指向 cURL 安装的链接

cd /usr/include
sudo ln -s x86_64-linux-gnu/curl

【讨论】:

  • 这实际上解决了我在 Ubuntu 18.04 上编译 PHP-5.3.22 时遇到的问题
  • 谢谢!符号链接在 Ubuntu 20.04 上为我修复了它,并使用 libcurl4-openssl-dev 编译 PHP 5.3.29
【解决方案3】:

试试 --with-curl,不指定位置,看看它是否会自己找到它。

【讨论】:

  • 我找到了,在默认位置找不到
【解决方案4】:

如果您要编译 64 位版本(x86_64) 的 php,请使用:/usr/lib64/

对于架构 (i386 ... i686),请使用 /usr/lib/

我建议将 php 编译为与 apache 相同的架构。当您使用 64 位 linux 时,我假设您的 apache 也是为 x86_64 编译的。

【讨论】:

  • Apache 是为 X86_64 编译的,我的 centOS 安装也是如此。由于安装了 curl,我猜 curl 也是 64 位的。
  • 是的,curl 可执行文件是 64 位的,但它也安装了 32 位版本的库(*.so 文件),因此 32 位应用程序也可以与 curl 库链接。
【解决方案5】:

php curl lib 只是 cUrl 的一个包装器,所以,首先,你应该安装 cUrl。 将 cUrl 源下载到您的 linux 服务器。然后,使用以下命令进行安装:

tar zxvf cUrl_src_taz
cd cUrl_src_taz
./configure --prefix=/curl/install/home
make
make test    (optional)
make install
ln -s  /curl/install/home/bin/curl-config /usr/bin/curl-config

然后,将“/curl/install/home/include/”中的头文件复制到“/usr/local/include”。完成以上步骤后,php curl扩展配置就可以找到原来的curl了,就可以使用标准的php扩展方法安装php curl了。
希望对你有帮助,:)

【讨论】:

    猜你喜欢
    • 2012-10-02
    • 1970-01-01
    • 2023-03-03
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多