Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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
什么';Windows上的PHP发行版发生了什么?_Php_Windows - Fatal编程技术网

什么';Windows上的PHP发行版发生了什么?

什么';Windows上的PHP发行版发生了什么?,php,windows,Php,Windows,Windows上的PHP发行版发生了什么 我使用默认设置安装了4个不同的版本,但都不起作用 其中两人抱怨缺少OCI.dll,另一人抱怨缺少zlib.dll 这是一台Windows7x64机器,PHP目录位于请求的路径中-我仔细检查了一下 有趣的是,甚至有一个qa部分,但是首页上的构建都不起作用,它们应该通过qa阶段:p 请不要问我为什么要在Windows上使用它,这只是出于科学目的;) 如果我记得很清楚的话,您可以使用类似于的东西。问题是,如果您什么都不做,安装后基本上所有扩展都默认启用,即使是

Windows上的PHP发行版发生了什么

我使用默认设置安装了4个不同的版本,但都不起作用

其中两人抱怨缺少
OCI.dll
,另一人抱怨缺少
zlib.dll

这是一台Windows7x64机器,PHP目录位于请求的路径中-我仔细检查了一下

有趣的是,甚至有一个
qa
部分,但是首页上的构建都不起作用,它们应该通过qa阶段:p


请不要问我为什么要在Windows上使用它,这只是出于科学目的;)

如果我记得很清楚的话,您可以使用类似于的东西。问题是,如果您什么都不做,安装后基本上所有扩展都默认启用,即使是那些需要专有DLL的扩展(如pdo oracle)

如果你手工挑选了一些你大部分时间都需要的扩展,它要么直接工作,要么使用的DLL很容易找到

在我的win7 x64上,以下扩展在我的php.ini中被注释,我只注释了不想加载的扩展:

;extension=php_dbase.dll
;extension=php_fdf.dll
;extension=php_gmp.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_ming.dll
;extension=php_oci8.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_sqlite.dll
;extension=php_pdo_sqlite_external.dll
;extension=php_pspell.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
它们位于文件末尾的许多小ini部分中

把它放在path中根本没有必要(事实上从来没有必要,现在更容易了),正确的安装可以像大多数软件一样在程序文件中正确完成



或者,正如您在评论中所说的,您可以使用一个版本的php直接与IIS一起工作,就像预打包一样。但我个人更喜欢让apache即使在windows上也能使用mod_rewrite和
.htaccess
文件(因为我的最终目标是在linux下安装apache)

谢谢,但我只想要PHP,而不是整个cow。我想这是服务器故障造成的,不是这样。你为什么在windows上使用它?他们没有学会检查所需库的存在,如果不存在,则跳过扩展加载吗?我想不会,因为当前PHP将崩溃。顺便说一句,我从扩展中删除了所有文件,但它仍然崩溃。我不记得在Python或Ruby上有过这样的经历。问题是,当你在windows上使用库的静态链接,而这样的库不存在时,你的dll入口点甚至不会被调用。从外部程序检查这一点意味着读取PE报头不是一个简单的解决方案,特别是对于一个没有php核心开发人员关心的平台,我想。不要从扩展名中删除文件。顺便说一句,编辑您的php.ini并删除extension=partsThanks,但我发现了一个更好的解决方案,它不需要任何安装后工作—将此添加到您的解决方案中,我将接受您的答复。