【问题标题】:php install extension effectphp安装扩展效果
【发布时间】:2011-07-27 13:09:27
【问题描述】:

我只是对安装扩展的过程感到好奇,因为我正在尝试在 Ubuntu 上安装 php 的 uploadprogress 扩展。我在我的 usr/ 目录中有一个默认的 php 安装,但是我在 /opt 的另一个位置设置了一个 XAMPP 服务器(单独的 php apache mysql 包)。这是我用于测试的安装。

当我使用命令 pecl install uploadprogress 时,扩展程序会自动安装到 /usr 目录。作为测试,我将 uploadprogress.so 文件从 /usr 目录 php 位置中取出,并将其放在我的 XAMPP 安装所在的 opt 位置。然后,我为我的 XAMPP 安装修改了 php.ini 并将扩展名放入。当我运行 phpinfo() 时,它显示 uploadprogress 已安装,但是在上传文件时,uploadprogress 函数返回 null。

我的问题是,安装一个php扩展时,做了哪些流程,创建和修改了哪些文件?如果我手动下载uploadprogress.tgz并手动编译,它仍然安装到/usr/local/php5/ext 的默认目录,我想除了在扩展目录中创建一个 .so 文件之外,还必须做更多的事情。 如何更改扩展程序的安装位置?我希望该扩展程序可用于 /opt 中的其他 XAMPP 安装。

【问题讨论】:

  • 如果它出现在phpinfo() 中,它应该可以工作。移动文件后是否重新启动了 XAMPP?
  • 是的,我做到了。 .so 文件是通过安装扩展程序创建的吗? php安装是否也重新编译了?它出现是因为我刚刚将 .so 文件复制到了我的另一个安装的 ext 目录,然后将扩展名放在了我的 php.ini 文件中,但我认为我应该做一些其他的事情来完成安装。
  • 你调用函数是uploadprogress($id);还是uploadprogress_get_info($id);?在示例中,他们使用uploadprogress_get_info($id);。除此之外我不确定。但我 99% 确定扩展名只是单个 .so 文件。
  • 我正在发布具有唯一 ID 的表单并使用 jquery $.getJSON("testing1234.php?id=" + progress_key, function(data) { ping 包含 echo json_encode(uploadprogress_get_info) 的文件($_GET['id']));
  • 嗯...也许这个链接会对你有所帮助:php.net/manual/en/install.pecl.php-config.php

标签: php linux


【解决方案1】:

我的问题是,当一个php扩展安装后,做了哪些流程,创建和修改了哪些文件?

这取决于扩展,但通常会有扩展的构建和编译。临时文件被创建,配置可能被修改并且实际的模块文件(.so/.dll)正在被写入(至少)。

请记住,某些模块需要在 php.ini 中进行某些设置才能工作。如果您只复制了.so 文件,那么您也应该复制php.ini 的相关部分。

如何更改扩展程序的安装位置?

您通常会针对要安装的位置对其进行编译。如果默认位置不是你想要的位置,可以尝试在构建过程中指定输出目录,有php-config

【讨论】:

  • 感谢 hakre 我在编译时指定了正确的 php-config 并正确安装。然而,扩展函数 uploadprogress_get_info 返回 null 但它显示为安装在 phpinfo() 中。我知道这是不相关的,但您是否从任何特定设置的经验中知道会导致扩展上传进度这样做?
  • 不,不是从我的头顶。检查扩展文档和谷歌。
  • 我认为这可能是因为我使用的是本地测试服务器,并且文件几乎可以立即上传。我尝试了一个大文件,第一次返回基本上是说上传已经完成,以下响应为空。但是,我无法在本地服务器上使用此扩展程序模拟在线行为,这有点烦人。再次感谢。
  • 当然可以。只是限制带宽。我认为有一个 apache 模块,因此您可以更好地在测试系统上模拟现实生活。
【解决方案2】:

您想运行 configure --help 来查看它为您提供了哪些选项来编译扩展并查找安装目录路径选项。也许这个答案可以帮助你 pecl How do you change the default Pear/PECL build folder from /var/tmp?。 .so 文件是一个特殊的独立库。它从任何链接中剥离,基本上是一个目标文件。

【讨论】:

  • 感谢 Jitamaro 的建议。欣赏它。
猜你喜欢
  • 2013-09-17
  • 2017-12-03
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2017-03-23
  • 2021-09-01
  • 2016-12-12
相关资源
最近更新 更多