PHP命令行界面已停止工作。

4
我有一个全新的Windows 8安装:
从这个页面下载php-(5.6.11 zip):
将其解压到"C:\Users\patrick\php"。
不知道这是否重要:
复制并将php.ini-development重命名为php.ini。
将display_errors从off更改为on。
将"C:\Users\patrick\php"添加到我的环境变量路径中。
启动Windows PowerShell。
键入"php -S localhost:8000"
出现“CLI已停止工作”弹出窗口,没有更多信息。
(注意:在“php”之后键入任何内容都无关紧要,都会弹出相同的消息。)
类似但不完全相同的Stack Overflow问题:
PHP 5.3.0 as distributed in a xampp 1.7.2 .zip
通过更新与xampp捆绑的PHP版本来解决。由于我尚未使用xampp运行php,因此不确定如何进行此操作。
从Wamp升级到PHP 5.4.3,从5.3.8。
未解决,但建议他不要将WAMP安装到Program Files中,因为Apache和PHP的某些部分不喜欢在文件夹名称中使用空格。这不应该是“C:\Users\patrick\php”的问题,对吧?
还有一些其他与PHP相关的“CLI已停止工作”的问题,但我找到的所有问题都只发生在特定事件中,例如“当我使用此函数时...”等。

使用Process Monitor,我发现php.exe进程在所有我的Path文件夹中寻找DLL文件:

1
你是否以管理员身份运行PowerShell?你需要管理员权限才能在localhost:8000上绑定。 - Mathias R. Jessen
我没有以管理员身份运行它,但问题似乎仍然存在。任何php命令似乎都会产生相同的问题(“php”,“php -h”,“-php -a”等)。 - MrJalapeno
有趣。你可能想要启动procmon,看看 php.exe 在死亡时实际上正在尝试做什么。 - Mathias R. Jessen
你有任何如何使用 procmon 的技巧吗?我下载了它,启动后感到信息太多而不知所措,“显示 58,000 个事件的 156,000 个事件(32%)”。尝试应用过滤器并尝试 [路径包括“php”->包含],但是当我激活过滤器时什么也没有得到(同时尝试从 PowerShell 运行 php)。编辑:将过滤器更改为“进程名称为 php.exe”,然后得到一堆东西,很快我会用屏幕截图或一些信息回复您。 - MrJalapeno
你知道吗,那个解决了!现在一切似乎都正常工作了,但是哇,我自己不会得出那个结论。不知道我是否可以在这里标记评论为解决方案? - MrJalapeno
显示剩余3条评论
1个回答

5
我们已经了解到,可执行文件php.exe在启动时会尝试定位一个名为MSVCR110.dll的库。

MSVCR110代表Microsoft Visual C++ Runtime 11.0

此运行时库是Visual Studio附带的Visual C++ Redistributable包的一部分,您可以从Microsoft下载并单独安装 - 他们甚至在KB2977003中维护了下载链接列表。

您需要下载Visual Studio 2012版本(对应VC++版本11.0)

安装后,它还将更新路径环境变量,php.exe 在启动时就能够找到它了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接