Symfony3:在Windows中开发,在Linux中部署。目录分隔

时间:2015-12-17 09:02:31

标签: linux directory symfony

我有以下问题: 我在Win10下写了一个小主页。一切都很好但是当我在Linux系统中部署我的工作时,我收到以下消息:

[2015-12-17 09:28:41] request.CRITICAL: Uncaught PHP Exception Twig_Error_Loader:
"The "/info/wwv/data/someone\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views" directory does not exist."
at /info/wwv/data/someone/vendor/twig/twig/lib/Twig/Loader/Filesystem.php line 94 [...]

我认为DIRECTORY_SEPARATOR或类似问题存在问题。路径存在,当我用斜杠替换反斜杠时,我可以访问它。

我的日志也写在目录app\logs而不是真正的子目录app/logs

3 个答案:

答案 0 :(得分:5)

您是否在Windows上生成缓存并部署缓存而不是在Linux服务器上构建缓存?由于操作系统之间的差异,这确实无法正常工作。 最新版本的Symfony允许在部署之前构建缓存并将其复制到另一台服务器,但这不适用于Windows的一面和Linux的另一面。

答案 1 :(得分:0)

我有一个类似的问题。有一天,symfony 3.4(在php7.2.16上)停止工作。将AppKernel.php中的某些路径设置从“ /”更改为“ \\”后,一切正常。

例如

public function getLogDir()
{
   return dirname(__DIR__).'\\var\\logs';
}

这似乎是与Windows有关的路径设置问题。

答案 2 :(得分:0)

我遇到了同样的问题,因为生产服务器没有让我分配足够的ram来运行composer,我不得不在本地运行它。

然后我遇到类似的错误(对于Linux,使用错误的访问路径\而不是/) 我采取的步骤:

  1. \\/中用composer.json替换composer.lock
  2. 清除var/cache/*