Laravel桌面应用运行时如何隐藏自动启动的命令提示符窗口
你遇到的问题是Laravel桌面应用启动时,php artisan serve对应的命令提示符窗口会主动弹出显示,效果如下:
解决方案
可根据你的使用场景选择对应方法:
场景1:Windows系统直接启动服务
- 使用VBS脚本实现完全隐藏窗口
新建一个后缀为.vbs的文件,写入以下内容:
后续直接运行该vbs文件即可启动服务,不会弹出命令窗口。其中参数Set WshShell = CreateObject("WScript.Shell") WshShell.Run "php artisan serve --host=127.0.0.1 --port=8000", 0, False0就是指定程序后台静默运行。
场景2:基于Electron等框架打包的桌面应用
启动子进程调用php命令时,添加隐藏窗口的配置参数即可,Electron示例代码如下:
const { spawn } = require('child_process'); const artisanProcess = spawn('php', ['artisan', 'serve', '--port=8000'], { cwd: '替换为你的Laravel项目根目录绝对路径', windowsHide: true, // 核心参数,隐藏Windows控制台窗口 shell: false });
如果使用Tauri等其他桌面打包框架,在调用系统命令的接口中开启windows_hide相关配置即可。
优化建议
- 桌面端生产场景不推荐使用
php artisan serve,可选择集成PHP内置服务器、或者nginx+php-cgi的组合,稳定性更高。 - 桌面应用退出时要主动kill掉对应的php进程,避免后台残留占用端口导致下次启动失败。
内容的提问来源于stack exchange,提问作者Abdur Rehman Alvi
相关产品推荐
相关产品推荐

