【发布时间】:2015-07-31 07:51:13
【问题描述】:
我有一个 Symfony2 应用程序在 vagrant vm 上的 apache 中运行。
Apache 以用户 www-data 运行,而 php 脚本通常以用户 vagrant 运行。
因为同步文件夹中的缓存速度很慢,所以我使用/dev/shm/project/cache 和/dev/shm/project/logs 作为我的日志。
我设置了这里提到的权限:http://symfony.com/doc/current/book/installation.html#book-installation-permissions
sudo setfacl -R -m u:"www-data":rwX -m u:"www-user":rwX -m u:"vagrant":rwX /dev/shm/project/cache /dev/shm/project/logs
sudo setfacl -dR -m u:"www-data":rwX -m u:"www-user":rwX -m u:"vagrant":rwX /dev/shm/project/cache /dev/shm/project/logs
我的问题是,当我以 vagrant 运行 phpunit 时,缓存文件是使用以下权限创建的,这在通过 apache 访问它们时会出现问题,因为它会导致 RuntimeException "Failed to write缓存文件...”.
$ ls -la /dev/shm/project/cache/test
total 2320
drwxrwxr-x+ 7 vagrant vagrant 400 May 19 12:52 ./
drwxrwxr-x+ 3 root root 60 May 19 12:52 ../
drwxrwxr-x+ 2 vagrant vagrant 38700 May 19 12:52 annotations/
-rw-r--r--+ 1 vagrant vagrant 233164 May 19 12:52 appTestDebugProjectContainerCompiler.log
-rw-r--r--+ 1 vagrant vagrant 538934 May 19 12:52 appTestDebugProjectContainer.php
-rw-r--r--+ 1 vagrant vagrant 57446 May 19 12:52 appTestDebugProjectContainer.php.meta
-rw-r--r--+ 1 vagrant vagrant 847598 May 19 12:52 appTestDebugProjectContainer.xml
-rw-r--r--+ 1 vagrant vagrant 174805 May 19 12:52 appTestUrlGenerator.php
-rw-r--r--+ 1 vagrant vagrant 16185 May 19 12:52 appTestUrlGenerator.php.meta
-rw-rw-r--+ 1 vagrant vagrant 5050 May 19 12:52 classes.map
drwxrwxr-x+ 3 vagrant vagrant 60 May 19 12:52 doctrine/
...
我不想在每次必须运行某些脚本时切换用户。我想要设置新文件的权限,以便两个用户都可以更改它们。
编辑:还有第三个用户:www-user。该用户是 fpm 的用户。所以实际上这个用户和 vagrant 用户必须拥有所有文件的读写权限。我已经改了acl,但是还是不行。
【问题讨论】:
标签: php apache symfony debian vagrant