Windows上的PHP_BINDIR不正确?

时间:2016-02-17 15:03:37

标签: php

当我使用PHP 5.6(来自WampServer 2.4)在Windows上运行脚本时,我得到了这个令人困惑的结果:

$binary = PHP_BINARY;  // $binary: "C:\wamp\bin\php\php5.6.15\php.exe"
$bindir = PHP_BINDIR;  // $bindir: "C:\php"

PHP_BINARY是正确的,但PHP_BINDIR完全错误。后一个变量是否已被弃用?任何其他的想法,为什么它会输出一些甚至不存在于我的磁盘上的随机路径?

2 个答案:

答案 0 :(得分:4)

/pages/payment/complete.aspx?error=12 /pages/payment/complete.aspx?paymentid=f7f19bba-ff1e-48b5-901f-be2cdb4319a5&error=3 运行时上设置的值(执行脚本时)

PHP_BINARY是在编译时上设置的值,而不是在运行时。

路径设置为configure中使用的前缀(Linux等效:PHP_BINDIR)。 Windows上的默认路径为./configure --prefix <path>。如果不重新编译PHP,就无法更改它。

要获得路径,您应该追踪C:\php

答案 1 :(得分:0)

问题在于PHP_BINDIR根据php-internals/11c783wgty/bug-54514在编译时设置。这表明这可能会在以后发生变化。

在编译时设置的任何东西都会与至少我们的Windows用户无关,因为我们通常依赖其他人来进行编译,因为Windows没有免费的编译器。据我所知,这将适用于在unix机器和Windows机器上编译的php,因为没有理由认为PHP正在从编译到的地方运行。

所以不要使用PHP_BINDIR来查找当前可执行文件的运行位置。