当我symfony self-update收到以下错误时 - 我该如何解决?
Backup failed, rename D:\SERVER\Symfony\symfony.exe C:\Users\FairyWilbury\.symfo
ny\autoupdate\2019-07-19_14-57-14-79024bb-old: The system cannot move the file t
o a different disk drive.. Canceling upgrade.
Run Code Online (Sandbox Code Playgroud)
更新。我刚刚意识到最新的 symfony 版本似乎是 4.3 和 4.4,因为它将于 11 月发布https://symfony.com/roadmap/4.4
然而,每当我运行symfony new --full %projectName%它时,我都建议我应该更新到 4.6(然后无法按照描述进行更新以上)。命令行截图:
这个问题是什么?
小智 6
首先,您混淆了Symfony Local Web Server和Symfony PHP 框架。你可以使用 web 服务器,它是一个单一的可执行命令行开发工具,来启动一个新的基于 Symfony 的项目或启动一个本地服务器,使你的 web 应用程序在开发时可用于测试和调试。另一方面,框架是您构建 Web 应用程序的代码库。
当你跑
symfony self-update
Run Code Online (Sandbox Code Playgroud)
从命令行,您(尝试)更新 Web 服务器,而不是框架。
在撰写本文时,Web 服务器的最新版本是 4.12.10,而框架是 5.0.5(或 4.4.5),因此,如您所见,它们彼此完全独立。
回到最初的问题,我也在为此苦苦挣扎,问题是我们都使用 Windows 并将 Web 服务器(symfony.exe)安装到驱动器 D 中的文件夹中:(在您的情况下,它是 D:\SERVER\ Symfony)。在运行时,它会将配置和其他文件存储在 Windows 用户帐户文件夹 (C:\Users\FairyWilbury) 中的“.symfony”目录中。在自我更新过程中,这就是它尝试移动原始 symfony.exe 文件的地方。由于某些未知原因,它无法在不同驱动器之间执行此操作,即使在具有管理员权限的命令行窗口中也无法执行此操作。
奇怪的是,我发现的唯一解决方案如下。
symfony self-update——这次很顺利我知道这有点麻烦,但我们必须考虑到 Windows 并不是最流行的 PHP 应用程序开发平台。;)