You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11+PHP8环境下创建PHAR文件的命令执行异常求助

Windows 11+PHP8环境下创建PHAR文件的命令执行异常求助

看起来你遇到的问题是命令调用格式不对,导致系统直接输出了phar.phar.bat脚本里的内容,而没有真正执行打包操作。我来帮你拆解一下原因和解决办法:

问题根源

你之前的命令把C:\PHP\phar.phar.bat作为php.exe的参数传递了,但phar.phar.bat是一个Windows批处理脚本,php.exe无法直接执行批处理文件——它只会把脚本内容打印出来,这就是你看到"%~dp0php.exe" "%~dp0pharcommand.phar" %*的原因。

正确的命令写法

你有两种可靠的解决方式:

方式1:直接调用批处理脚本

既然phar.phar.bat是官方提供的包装脚本,直接运行它即可,不需要通过php.exe中转:

C:\PHP\phar.phar.bat pack -f %folder%\%pluginname%.phar %folder%\%pluginname%

注意:如果phar.phar.bat所在目录已经加入系统PATH环境变量,直接写phar.phar.bat就行,不用加绝对路径。

方式2:绕过批处理,直接执行pharcommand.phar

其实phar.phar.bat本质上就是调用php.exe执行pharcommand.phar,你可以直接跳过bat脚本,用php.exe直接运行这个phar文件:

php.exe -d phar.readonly=0 C:\PHP\pharcommand.phar pack -f %folder%\%pluginname%.phar %folder%\%pluginname%

这种方式更直接,也能避免批处理脚本可能带来的路径问题。

额外注意事项

  • 确保%folder%和%pluginname%这两个环境变量已经正确定义,否则命令会因为路径不存在而报错。
  • 确认phar.readonly=0的设置生效:如果你的php.ini里已经把phar.readonly设为On,命令行的-d参数会覆盖这个设置,所以没问题,但如果还是报错,可以检查php.ini的配置。

备注:内容来源于stack exchange,提问作者LA_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 07:38:19