Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php安装扩展效果_Php_Linux - Fatal编程技术网

php安装扩展效果

php安装扩展效果,php,linux,Php,Linux,我只是对安装扩展的过程感到好奇,因为我正试图在Ubuntu上安装php的扩展。我在usr/目录中有一个默认的php安装,但在/opt的另一个位置设置了一个XAMPP服务器(单独的php-apache-mysql包)。这是我用于测试的安装 当我使用命令pecl install uploadprogress时,扩展将自动安装到/usr目录。作为测试,我将uploadprogress.so文件从/usr目录php位置取出,并将其放在我的XAMPP安装所在的opt位置。然后,我修改了用于XAMPP安装的

我只是对安装扩展的过程感到好奇,因为我正试图在Ubuntu上安装php的扩展。我在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安装

我的问题是,当安装php扩展时,会执行哪些进程,以及创建和修改哪些文件

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

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

如何更改扩展安装到的位置


您通常会针对要安装它的位置编译它。如果默认位置不是您想要的位置,您可以尝试在生成过程中指定输出目录,并且有。

您想要运行configure--help以查看它为您提供了哪些选项来编译扩展并查找安装目录路径选项。也许这个答案对你的pecl有帮助。.so文件是一个特殊的独立库。它从任何链接中剥离出来,基本上是一个对象文件

如果它出现在
phpinfo()
中,它应该可以工作。移动文件后是否重新启动XAMPP?是的。.so文件是通过安装扩展名创建的吗?php安装也是重新编译的吗?它之所以出现,是因为我刚刚将.so文件复制到另一个安装的ext目录,然后将扩展名放在我的php.ini文件中,但我认为必须做些其他事情才能完成安装
上传进度\u获取信息($id)?在示例中,他们使用
uploadprogress\u get\u info($id)。除此之外,我不确定。但我99%确定扩展名只是一个.so文件。我用一个唯一的id发布表单,并使用jquery$.getJSON(“testing1234.php?id=“+progress\u key,function(data){ping一个包含echo json\u encode的文件(uploadprogress\u get\u info($\u get['id'));嗯……也许这个链接会对你有所帮助:感谢Jitamaro的建议。感谢hakre。我在编译时指定了正确的php配置,并且安装正确。但是扩展函数uploadprogress_get_info返回null,但它显示为已安装在phpinfo()中.我知道这是不相关的,但你从任何特定设置的经验中知道会导致扩展上传进度这样做吗?不,不是从我的头脑中知道的。检查扩展文档和谷歌。我想可能是因为我使用的是本地测试服务器,文件几乎可以立即上传。我尝试了一个大文件,然后他第一次返回基本上是说上传已经完成,下面的响应是空的。这有点恼人,但是我不能在本地服务器上用这个扩展模拟在线行为。再次感谢。当然可以。只需限制带宽。我认为有一个apache模块可以让你更好地模拟现实生活你的测试系统。