Symfony2和Windows虚拟机

4
多年来,我一直在Mac上进行PHP开发工作,但现在我需要将我的部署操作系统从Linux和Mac更改为Windows Server。我已经在VMWare Fusion VM中设置了一个与我即将部署的机器相同的Windows Server。
与Vagrant设置类似,我共享了一个文件夹,将其从本地机器分享到VM中,并尝试通过VM为Symfony2应用程序提供服务,同时在Mac上继续开发(这里有所有我所需的工具)。
配置页面运行良好,但是当我尝试加载实际页面时,我会得到以下错误提示:
InvalidArgumentException: Unable to parse file
"\\VMWARE-HOST\SHARED FOLDERS\Symfony\vendor\symfony\symfony\src\Symfony\Bundle
\FrameworkBundle\DependencyInjection/../Resources/config\web.xml".

并且

InvalidArgumentException:
[WARNING 1549] failed to load external entity "file://///VMWARE-HOST/SHARED%20FOLDERS/Symfony/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd" (in n/a - line 0, column 0)
[WARNING 3084] Element '{http://www.w3.org/2001/XMLSchema}import': Failed to locate a schema at location 'file://///VMWARE-HOST/SHARED%20FOLDERS/Symfony/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd'. Skipping the import. (in in_memory_buffer - line 8, column 0)
[ERROR 1845] Element '{http://symfony.com/schema/dic/services}container': No matching global declaration available for the validation root. (in //vmware-host/Shared Folders/Symfony/web/ - line 5, column 0)

我还无法弄清楚如何纠正这些错误...有没有关于如何纠正这些错误的建议?或者我是注定要失败了!

故障排除方面:我已经使用相同的虚拟机/文件夹共享启动了一个 Laravel 应用程序,因此应该与 Symfony2 有关。我还尝试过使用 Composer 安装和从 Symfony2 网站下载和提取。


似乎Symfony2找不到该文件。请检查file://///VMWARE-HOST/SHARED%20FOLDERS/[...]/services-1.0.xsd是否存在并且服务器可以读取。 - A.L
你正在运行哪个版本的Symfony2?在安装新的Symfony后,是否仍然遇到相同的问题? - Adam Elsodaney
你能否尝试在Windows服务器上设置映射网络驱动器(例如使用G:\而不是\vmware-host\shared folders)- 如果问题是UNC路径本身,这可能是一个解决方法。 - Nils
在“网上”似乎有关于“VM”,“Symfony2”和“共享文件夹”的大量信息。我猜如果您添加了一个'URL'列表,其中包含您找到并尝试过的“东西”,这可能会很有用。它至少会给我们一些线索,说明您尝试过什么并发现'不是很有用'。 - Ryan Vincent
我们真的需要完整的堆栈跟踪来得到一些想法,请您发布它。 - David Soussan
2个回答

0

-1

你应该清除Symfony的缓存,它可能会保留对过时文件的引用。首先尝试使用以下命令:

php app/console cache:clear --no-debug

如果错误仍然存在,请手动删除app/cache/app/logs/中的缓存文件。并在这两个文件夹中设置适当的权限

这绝对不是解决方案。当缓存被清空时,此错误出现在最初的时刻。 - Friedrich
@Frieder,这就是为什么我已经添加了如果错误仍然存在,请手动删除缓存文件夹的内容...我以前也遇到过这种情况。 - devilcius
即使我这样做了,当缓存内容被删除时错误仍然存在,这个问题有赏金并不是因为一个简单的“删除缓存错误”。 - Friedrich
1
@frieder,当过时的引用被保留在缓存文件夹中时,这种错误确实会发生。问题中没有提到缓存已被清除。看似复杂的问题可能有简单的解决方案。 - devilcius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接