我正在我的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配置?
谢谢你,谢谢
2条答案
按热度按时间ff29svar1#
所以,如果你想让你的Dockerfiles看起来像Windows-y,使用反勾号来转义,注意不使用它的指令,并坚持使用shell形式来运行命令:
字符串
@ref:https://blog.sixeyed.com/windows-dockerfiles-and-the-backtick-backslash-backlash/
kkih6yb82#
我在Laravel中也有类似的错误。在我的情况下,我在运行Docker容器时运行了一些设置命令,如
php artisan cache:clear
,php artisan config:cache
和php artisan storage:link
,这很有帮助。一些缓存文件,链接有Windows风格的路径,这个命令将其更新为实际的Docker文件系统路径。