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

cclgggtu  于 12个月前  发布在  Nginx
关注(0)|答案(2)|浏览(125)

我正在我的Docker for Windows上运行一个客户端Symfony3应用程序。我的Docker编写非常简单: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配置?
谢谢你,谢谢

ff29svar

ff29svar1#

所以,如果你想让你的Dockerfiles看起来像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/

kkih6yb8

kkih6yb82#

我在Laravel中也有类似的错误。在我的情况下,我在运行Docker容器时运行了一些设置命令,如php artisan cache:clearphp artisan config:cachephp artisan storage:link,这很有帮助。一些缓存文件,链接有Windows风格的路径,这个命令将其更新为实际的Docker文件系统路径。

相关问题