我可以在不是DLL文件的Windows上添加PHP扩展吗?

时间:2009-07-26 21:25:42

标签: php dll pecl

我在其他地方问过这个问题,但那里的人似乎并不理解我在说什么。

当我访问PECL网站时,发现所有扩展都在TGZ文件中 这不是问题,任何现代的归档程序都可以打开它。

Inside总是一个.tar文件,里面是源文件。 那么,我该怎么做呢?我对使用pecl_http扩展特别感兴趣,但我不知道该怎么做。

注意:.TAR文件中没有DLL文件。没有,不是一个人。你找到的只是C代码和C头。

3 个答案:

答案 0 :(得分:4)

如果没有提供.dll,你必须编译它: - (

不久前有一个pecl4win网站,但它已经失败了;并且新的http://windows.php.net/还没有上的扩展(有工作正在进行,但是对于PHP开发人员而言,windows不是 首选平台,也不是核心开发者,所以它的速度不是很快。

你这样说:

  

.TAR中没有DLL文件   文件。无论如何,不​​是单一的   一。你找到的只有C代码和C.   头。

这意味着你必须自己编译扩展:-( (也许你会很幸运,找到一个适合你的PHP版本的.dll;一些扩展,比如Xdebug,在他们的官方网站上有这些,至少对于PHP的最新版本...但情况并非总是如此:-()

要使用Windows编译PECL扩展,您可以查看以下链接:

无论如何......祝你好运......

作为旁注:如果我没记错的话,PHP的Windows安装程序会捆绑一些PECL扩展;也许这个是其中之一?

答案 1 :(得分:2)

Windows的 ARE pecl库集合,它们可以在PHP下载页面(名为XYZ-win32-pecl.zip或类似名称)上附加(作为单独的链接),或以某种方式链接(例如,最新的PHP5可以使用之前5.X设置中的PECL,并在下载页面上说明了这一点。)

如果你得到的只是源代码,你需要自己构建它们。

a)下载PHP源代码(构建lib所需的大量头文件,并将它们链接到Windows上的PHP),

b)下载你想要构建的扩展,并将它们放在/ phpsource / src / ext /文件夹中,

c)准备您最喜欢的C / C ++ IDE(我更喜欢使用VisualC ++ 6.0,仅用于在Windows上编写PHP扩展)

d)构建环境,最后

e)构建; - )

请注意您需要PHP [ver] debug_ts.lib或PHP [ver] release_ts.lib才能正确链接它们。

除非你为PHP 4.4.4构建它们(我用它来开发使用BamCompile的.exe应用程序 - 一种迂回的方式,但它很有效),在这种情况下只需将源代码发送给我,我会如果我有时间,为你建造它。 ;-)也有机会,扩展你正在寻找 HAS 已经为它构建的.dll。只需使用扩展程序的名称,然后在Google上搜索“php_ NameOfTheExtension .dll PHP YourPHPVersionNumber ”,你就可以找到它(虽然有一些,比如php_openAl.dll don不存在.dll)。

答案 2 :(得分:1)

插件几乎总是使用共享库(a.k.a.动态库)实现,包含在运行时动态加载的函数。在Windows上,共享库是DLL,这就是为什么PHP的所有扩展(即插件)都以一个或多个DLL文件的形式出现的原因。如果给你一个插件的源代码,你需要构建源代码(即编译并链接它)到DLL或DLL中。

您如何构建源代码取决于特定的插件。精心设计的源代码包将附带一个“README”文件,用于解释如何构建软件包。如果包中包含名为“configure”的文件和另一个名为“Makefile”的文件,那么几乎总是要调用构建过程:

./configure
make
sudo make install

在Windows上,必须使用Cygwin调用上述命令。如果包中包含Visual Studio项目文件,那么您可以使用构建源包。