Ale*_*nov 2 php permissions caching symfony docker
我正在 OSX 上运行 Docker 容器。容器包括:
这是运行 Symfony 应用程序的非常常见的设置。
我遇到了一些奇怪的文件夹权限问题,并且收到此错误: 错误屏幕截图
我的 Symfony 可以创建文件夹
/var/www/var/chache
Run Code Online (Sandbox Code Playgroud)
但它无法写入其中。创建缓存文件夹后,文件夹权限将设置为:
10344 drwxr-xr-x 1 1000 staff 68 Apr 15 00:33 cache
Run Code Online (Sandbox Code Playgroud)
该文件夹的所有者是我的本地 OSX 用户,Docker 正在该用户下运行。我尝试从 Docker 中的 Symfony CLI 更改文件夹权限或所有者,但没有效果。我尝试chmod -R 777在本地控制台下更改权限,但随后 Symfony 在缓存文件夹内创建文件夹,并且无法再次写入其中。
我还尝试在 app_dev.php 中禁用缓存:
$kernel = new AppKernel('dev', true);
// $kernel->loadClassCache();
$request = Request::createFromGlobals();
Run Code Online (Sandbox Code Playgroud)
在 config.yml 中:
twig:
cache: false
Run Code Online (Sandbox Code Playgroud)
没有任何效果,所以我迷失在这里。
有什么想法如何解决问题吗?
您还没有向您展示 Dockerfile,因此我可以为您提供一个使用 PHP-FPM 的容器示例,其中解决了此问题:
此行正在修复权限错误:usermod -u 1000 www-data
FROM debian:jessie
RUN apt-get update
RUN apt-get install -y curl \
mcrypt \
&& apt-get install -y php5 \
php5-fpm \
php5-cli \
php-pear \
php5-common \
php5-igbinary \
php5-json \
php5-mysql \
php5-mysqlnd \
php5-gd \
php5-curl \
php5-dev \
php5-sqlite \
php5-memcached \
php5-memcache \
&& usermod -u 1000 www-data
EXPOSE 9000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8567 次 |
| 最近记录: |