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

执行PHP CLI脚本出现预期输出同时报错的原因与解决方法求助

问题原因

你遇到的报错是系统没有正确识别PHP解释器的Shebang声明,直接用默认Shell执行了PHP脚本导致的:
Shell执行到<?php echo "Hello world of PHP CLI!"; ?>这行时,会把左尖括号<识别为输入重定向符号,尝试读取名为?php的文件作为输入,所以抛出第一行?php: No such file or directory的错误;中间的echo "Hello world of PHP CLI!"语句刚好是Shell也支持的语法,被Shell正常执行输出了预期内容;最后的?>不符合Shell语法,就抛出了后续的语法错误。

常见导致Shebang失效的场景有2种:

  • 脚本第一行的Shebang(#!/usr/bin/php -q)前存在多余内容:包括不可见的UTF-8 BOM头、空格、制表符,或前面有空行,导致系统无法识别#!开头的解释器声明
  • 脚本使用了Windows格式的CRLF换行符,Shebang行末尾的\r不可见字符会被系统当成解释器路径的一部分,找不到/usr/bin/php\r这个程序,fallback到Shell执行脚本
解决方案

按照优先级依次排查即可:

  1. 首先确认Shebang行是文件的第一行,且行首没有任何空格、空行
  2. 转换脚本的换行符为Unix格式的LF:可以用dos2unix test.php命令直接转换,也可以在编辑器的右下角设置换行格式为LF后重新保存文件
  3. 如果是UTF-8 BOM导致的问题,用编辑器把文件编码改为「UTF-8 无BOM」格式后重新保存即可
  4. 验证修改结果:修改完成后执行./test.php,只会输出Hello world of PHP CLI!就说明修复成功

内容的提问来源于stack exchange,提问作者user7375077

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:27:02