Docker PHP / Nginx环境无法使用反斜杠处理文件夹路径

时间:2018-08-17 17:18:22

标签: php nginx path backslash docker-for-windows

我正在Windows的Docker上运行客户端Symfony3应用程序。我的docker-compose非常简单:PHP7.1,Nginx,MySQL和phpMyAdmin。

一切正常,但是当PHP尝试访问包含正斜杠和反斜杠的文件路径时,出现了多个错误。

例如,我遇到的第一个错误是:"Session Storage was not able to create directory "/var/www/symfony\app/../var/sessions/prod""

这不是权限问题,因为当我找到调用此文件的代码的PHP部分,并将\app替换为/app时,一切正常,应用程序将运行至下一个路径。

我绝对不能替换代码中的所有反斜杠,因为其他开发人员可能会在Windows上工作并将这些反斜杠放在一个原因。但是,我很确定我已经使用这种路径之王运行了应用程序,没有任何问题。

关于它可能来自哪里的任何想法? PHP配置? Nginx config吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,如果您想使Dockerfile看起来像Windows-y,请使用反引号进行转义,注意不适用于它的指令,并坚持使用shell形式运行命令:

# escape=`

FROM microsoft/nanoserver  
COPY template.html c:\template.html  
RUN mkdir c:\inetpub\wwwroot  
RUN powershell `  
     cat c:\template.html `
     > c:\inetpub\wwwroot\index.html

@ref:https://blog.sixeyed.com/windows-dockerfiles-and-the-backtick-backslash-backlash/