【问题标题】:php cli has stopped workingphp cli 已停止工作
【发布时间】:2015-10-08 02:05:15
【问题描述】:

我有一个全新的 Windows 8 安装:

this page:
下载了 php-(5.6.11 zip) 将其解压缩到“C:\Users\patrick\php”。

不知道这是否重要:
复制并重命名 php.ini-development 为 php.ini。
将 display_errors 从关闭更改为打开。

在我的环境变量路径中添加了“C:\Users\patrick\php”。
已启动 Windows PowerShell。
输入“php -S localhost:8000”
“CLI 已停止工作”弹出没有更多信息。

(OBS:不管我在“php”之后输入什么,都会弹出相同的消息)

类似但不完全相同的 Stack Overflow 问题:
PHP 5.3.0 as distributed in a xampp 1.7.2 .zip
通过更新与 xampp 捆绑的 PHP 版本来解决。由于我没有使用 xampp 运行我的 php,但我不确定我将如何去做。

updated Wamp to PHP 5.4.3 from 5.3.8.
没有解决,但建议他不应该将 WAMP 安装到程序文件中,Apache 和 PHP 的某些位不喜欢在文件夹名称中包含空格。这不应该是“C:\Users\patrick\php”的问题,对吧?

还有一些其他与php相关的“CLI已停止工作”问题,但我发现的所有问题都只发生在特定事件中,例如“当我使用此功能时......”等。


使用进程监视器,我发现php.exe 进程一直在我的所有路径文件夹中寻找 DLL 文件:

【问题讨论】:

  • 您是否以管理员身份运行 PowerShell?您需要管理员权限才能在 localhost:8000 上绑定
  • 我没有以管理员身份运行它,但问题似乎仍然存在。似乎任何 php 命令都会产生相同的问题(“php”、“php -h”、“-php -a”等)
  • 有趣。你可能想启动procmon 看看php.exe 在它死后实际上想做什么
  • 您对如何做到这一点(使用 procmon)有什么建议吗?我下载了它,启动它并被信息淹没,即“显示 156.000 个事件中的 58.000 个事件 (32%)”。尝试应用过滤器并尝试[路径包括“php”->包含]但是当我激活过滤器时我什么也没得到(同时尝试从powershell运行php)。编辑:将过滤器更改为“进程名称是 php.exe”并得到了一堆东西,我会尽快用屏幕截图或一些信息回复你。
  • 这是 procmon 中发生的情况:s23.postimg.org/vlpennxx5/screenshot_for_stackoverflow.png 编辑:看起来它正在通过我的环境变量路径寻找一些 DLL 文件(文件未找到的长列表正在遍历我的每个文件夹路径,即 VLC 和 Python 之类的。

标签: php powershell


【解决方案1】:

正如我们所建立的,php.exe 可执行文件会在启动时尝试定位名为 MSVCR110.dll 的库。

MSVCR110 代表 Microsoft Visual C++ Runtime 11.0

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

您需要Visual Studio 2012 version(对应于 VC++ 版本 11.0)。

安装后,它还会更新路径环境变量,然后php.exe 应该能够在启动时找到它

【讨论】:

    猜你喜欢
    • 2010-12-12
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2012-04-22
    • 1970-01-01
    相关资源
    最近更新 更多