我正在使用 Symfony 开发一个网站,我花了大约两周的时间来开发它。
我使用的是 Windows 10,我使用 Symfony 5.8.12 和 php 8.1.13 以及 Wamp 3.3.0 作为数据库。 直到上周五一切都正常:
我尝试刷新页面,但加载无休无止。没有额外的 symfony 日志。 我使用 Ctrl+C 停止服务器运行,在任务管理器中查看进程时它停止了。 我收到消息了:
TerminateProcess: Access is denied.
我试过了
symfony server:start
编辑:我还发现运行时出现访问被拒绝错误很可能是由于以下原因
symfony server:status
:编辑:我现在拥有管理员权限,所以这没什么大不了的。我可以注销然后重新登录来解决问题。问题是它会在随机的日子或一天中的某个时间发生多次。
有效的解决方案是重新启动计算机,但由于我还没有管理员权限,因此我需要 IT 人员输入管理员凭据才能执行 Wamp。
我还尝试使用
symfony server:start -d
,这样每当我想停止服务器时,我都会使用正确的命令,symfony server:stop
。
今天,我再次处理我的项目,一切顺利,我的 webpack 已编译,但开发工具中的控制台不想更新我的 javascript 代码,所以我用
symfony server:stop
重新启动了 symfony,我得到:
Stopping Web Server
然后我运行
symfony server:start
然后我得到了
TerminateProcess: Access is denied.
编辑 - 为什么 PID 仍然根据 Symfony 分配给工作人员,有没有办法在不注销的情况下重置此“绑定”?
当我没有终止而是启动进程时,为什么会收到有关 TerminateProcess 的消息?
为什么这种情况会随机发生? (重启后就发生过一次,今天正常工作一整天后......)。
我找到了一种在旅途中“解决”这个问题的方法(无需注销/重新启动计算机),尽管它没有解释为什么,如OP的终端屏幕截图所示,symfony将一个Worker绑定到不存在的PID。
我在一篇文章中找到了一个答案,该帖子没有具体提到
TerminateProcess
错误,但谈到了 symfony Workers 被复制并绑定到死 PID。
解决办法是删除
server:status
后提到的日志文件名对应的文件夹。
在我们的例子中,Workers 中指定的日志文件是 973a...1476.log.
所以我们删除文件夹 C:\Users%USER%\.symfony5 ar\973a...1476\
然后我们可以检查它的状态,它应该如下所示,然后我们可以再次启动我们的服务器。