Symfony 4中php bin/console server:run命令无法运行求助
解决Symfony 4中
server:run命令找不到router.php的问题 嘿,我之前也踩过这个坑,咱们一步步来搞定它~
你遇到的错误是因为Symfony的Web Server Bundle依赖的router.php文件缺失了,而你用php -S 127.0.0.1:8000 -t public能正常运行,是因为这个命令直接指向了Symfony 4的入口目录public,PHP内置服务器会自动用public/index.php处理请求,绕开了Web Server Bundle的路由转发逻辑。
下面是几个可行的解决办法:
检查并重新安装Web Server Bundle
首先确认这个开发环境用的bundle有没有正确安装:- 打开项目根目录的
composer.json,看看require-dev里有没有symfony/web-server-bundle; - 如果没有的话,执行这条命令安装:
composer require symfony/web-server-bundle --dev - 再检查
config/bundles.php文件,确保开发环境下启用了这个bundle,应该有这一行:Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
- 打开项目根目录的
重置依赖,补全缺失文件
如果已经安装了bundle还是报错,大概率是vendor目录里的文件损坏或者不全,咱们重置一下:rm -rf vendor composer install这条命令会清空现有的vendor目录,重新下载并安装所有依赖,Web Server Bundle的完整文件(包括那个缺失的
router.php)应该就会回来了。用
php -S替代,做成便捷脚本
既然你已经验证php -S 127.0.0.1:8000 -t public能正常运行,不如把它做成composer脚本,用起来和server:run一样方便:
打开composer.json,在scripts节点里添加一行:"scripts": { "serve": "php -S 127.0.0.1:8000 -t public" }之后只要在终端执行
composer serve,就能一键启动服务器啦,省心又靠谱。
内容的提问来源于stack exchange,提问作者EmmCall
相关产品推荐
相关产品推荐

