【发布时间】: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