运行php项目出错
错误原因:
Apache 配置文件中的 Wrapper
指令路径包含空格( D:/Program Software/...
),但路径未用引号包裹。Apache 会将空格视为参数分隔符,导致路径被错误地拆分为 D:/Program
和 Software/...
,最终提示“系统找不到指定的文件”。
解决方案:
-
打开配置文件
找到报错的配置文件:
D:/Program Software/phpstudy_pro/Extensions/Apache2.4.39/conf/vhosts/0localhost_80.conf
-
定位到第5行
找到包含Wrapper
指令的行,原内容可能类似:Wrapper D:/Program Software/phpstudy_pro/Extensions/php/php-7.4.3-nts/php-cgi.exe
-
用双引号包裹完整路径
在路径两侧添加英文双引号"
,Program Software加一个下划线,确保空格被正确解析:Wrapper "D:/Program Software/phpstudy_pro/Extensions/php/php-7.4.3-nts/php-cgi.exe"
-
检查路径是否正确
-
确认
D:/Program Software/.../php-cgi.exe
实际存在。 -
对于包含空格的文件名,Program Software加一个下划线,并新建文件夹重新安装到这个文件夹中Program_Software。如下图
-
-
重启 Apache 服务
修改保存后,重启 Apache 使配置生效。
示例对比:
# 错误写法(路径含空格 未加引号) Wrapper D:/Program Software/phpstudy_pro/Extensions/php/php-7.4.3-nts/php-cgi.exe # 正确写法(路径用引号包裹,并删除空格路径) Wrapper "D:/Program_Software/phpstudy_pro/Extensions/php/php-7.4.3-nts/php-cgi.exe"
为什么需要引号和空格?
-
空格问题:Windows 系统路径中的空格会中断命令行参数。引号的作用是告诉 Apache:“这是一个完整的路径,不要拆分空格”。
-
系统兼容性:类似于在命令行中执行含空格的路径时需加引号(例如
cd "C:/Program Files"
)。
参考文章: