AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1049636
Accepted
user549144
user549144
Asked: 2021-01-13 22:34:31 +0800 CST2021-01-13 22:34:31 +0800 CST 2021-01-13 22:34:31 +0800 CST

如何让我的 PHP 源安装使用 /usr/local/programname/lib 或 /usr/local/lib 中的库?

  • 772

如何让我的 PHP Source 安装使用里面的库/usr/local/programname/lib代替或/usr/local/lib?

我尝试将 LD_LIBRARY_PATH 设置为每个程序名称,例如LD_LIBRARY_PATH="/usr/local/programname1/lib:/usr/local/programname2/lib:/usr/local/programname3/lib".

而且,我退出了。甚至运行source /etc/environment(我已将 LD_LIBRARY_PATH 变量放在 /etc/environment 中),甚至重新启动系统。

但是,当我运行时./configure --with-openssl --with-curl,它告诉我 libssl 不存在。

我不想使用apt提供的libssl-devandlibcurl-dev包,因为我需要最新版本来测试。

而且,我注意到:如果我安装程序的 lib 目录/usr/local/lib而不是/usr/local/programname/lib,它可以在不设置任何环境变量的情况下工作。

但是,在我看来,/usr/local/programname/lib更清楚,所以我想使用这种类型的路径。

我怎样才能使 PHP 使用里面的库/usr/local/programname/lib而不是/usr/local/lib?我的意思是,我想/usr/local/programname/lib比其他lib目录更优先。

programname是指安装在 中的每个程序的名称/usr/local。

我什至尝试使用(我在里面/etc/ld.so.conf.d/programname.conf写过),然后运行​​. 但仍然没有运气。/usr/local/programnameldconfig

顺便说一句,我使用的是 Ubuntu 20.10

编辑:

“不要与系统的约定作对” ——我不能就这样继续前进。我必须尝试这样做,否则我会被卡住,并且依赖于 apt 给我的有点旧的包(即使它给了我最新的包,我也不能,例如:使用 http/3 并测试它和更多的..)。而且,将无法进行任何测试。我这样做是为了让我的程序经得起未来的考验,甚至是为了享受这些试验的乐趣。通过使用新程序进行测试。安装/usr/local感觉不太好,因为我测试了多个版本的库。就像我使用 OpenSSL 1.1.1i 和 OpenSSL 3.0.0 以及其他版本进行测试一样。所以,安装到 /usr/local 不会让我受益,但安装到/usr/local/openssl-1.1.1i和/usr/local/openssl-3.0.0会更干净,会节省我更多的时间。我不能每次都make install继续跑步。make uninstall不仅是 OpenSSL,甚至是 cURL 和其他包。

php environment-variables configuration make libraries
  • 2 2 个回答
  • 151 Views

2 个回答

  • Voted
  1. Tero Kilkanen
    2021-01-13T23:57:46+08:002021-01-13T23:57:46+08:00

    系统默认约定用于很多地方,以至于您通过使用不同的目录为自己创造了巨大的开销。

    最简单的方法是使用 Docker 容器进行测试。这样您就可以使用容器内的默认系统位置。

    • 1
  2. Best Answer
    user549144
    2021-01-14T06:30:45+08:002021-01-14T06:30:45+08:00

    我添加PKG_CONFIG_PATH="/usr/local/programname/lib/pkgconfig"了LD_LIBRARY_PATHset to /usr/local/programname/lib,它现在可以工作了。我的 PHP conf 现在使用我安装在/usr/local/programname.

    经过这么多研究,这就是我想出的。但是,在我继续检查之前,我无法确认它是否适用于所有想要这样做的人。

    • 0

相关问题

  • 用户特定的 Php.ini 当 php 作为模块运行时?

  • 使 php mail() 函数在 ubuntu-server 上工作的步骤是什么?

  • Web 服务器和数据库服务器位于完全不同的位置

  • PHP 作为 CGI 还是 Apache 模块?

  • 通过 VPN 连接什么是远程服务器 IP?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve