Разрешение кеша Symfony с консолью - PullRequest
0 голосов
/ 16 января 2019

Во-первых, у меня есть APP_ENV=benchmark в моем .env.

После перехода на мой сайт через браузер, /var/cache/benchmark/:

-rw-rw-rw-   1 dometech dometech     98 janv. 16 12:31 annotations.map
-rw-rw-rw-   1 dometech dometech   6198 janv. 16 12:31 annotations.php
drwxrwxrwx   2 www-data www-data  24576 janv. 16 12:27 Container3xlMUL6
-rw-rw-rw-   1 dometech dometech      0 janv. 16 12:31 Container3xlMUL6.legacy
drwxrwxrwx   2 dometech dometech  24576 janv. 16 12:31 ContainerYBspTLo
drwxrwxrwx   3 dometech dometech   4096 janv. 16 12:31 doctrine
drwxrwxrwx  10 dometech dometech   4096 janv. 16 12:31 pools
drwxrwxrwx   9 www-data www-data   4096 janv. 16 12:31 profiler
drwxrwxrwx   2 www-data www-data   4096 janv. 16 12:31 sessions
-rw-rw-rw-   1 dometech dometech 120497 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainerCompiler.log
-rw-rw-rw-   1 dometech dometech      6 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainerDeprecations.log
-rw-rw-rw-   1 dometech dometech    826 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainer.php
-rw-rw-rw-   1 dometech dometech  36921 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainer.php.meta
-rw-rw-rw-   1 dometech dometech  13649 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainerUrlGenerator.php
-rw-rw-rw-   1 dometech dometech   2493 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainerUrlGenerator.php.meta
-rw-rw-rw-   1 dometech dometech  10857 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainerUrlMatcher.php
-rw-rw-rw-   1 dometech dometech   2493 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainerUrlMatcher.php.meta
-rw-rw-rw-   1 dometech dometech 444567 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainer.xml
-rw-rw-rw-   1 dometech dometech  36025 janv. 16 12:31 srcApp_KernelBenchmarkDebugContainer.xml.meta
drwxrwxrwx   2 www-data www-data   4096 janv. 16 12:31 translations
drwxrwxrwx 140 dometech dometech   4096 janv. 16 12:31 twig
-rw-rw-rw-   1 dometech dometech   6846 janv. 16 12:31 validation.php

Хорошо, нет проблем. После:

  • Я запускаю команду cache:clear
  • Я запускаю команду APP_ENV=benchmark ./bin/phpunit ( = Тесты приспособлений и функционалов для тестирования (время выполнения, краткий запрос и т. Д.) )
  • Я снова захожу на свой сайт через браузер, У меня есть эта ошибка :

Невозможно создать каталог кэша (/var/www/Bubblemeet/var/cache/benchmark/twig/c5).

Это мой /var/cache/benchmark/ сейчас:

-rw-rw-rw-  1 dometech dometech     98 janv. 16 12:35 annotations.map
drwxrwxrwx  2 www-data www-data  28672 janv. 16 12:35 Container3xlMUL6
drwxrwxrwx  2 dometech dometech  24576 janv. 16 12:34 ContainerYBspTLo
-rw-rw-rw-  1 www-data www-data      0 janv. 16 12:35 ContainerYBspTLo.legacy
drwxrwxrwx  3 dometech dometech   4096 janv. 16 12:34 doctrine
drwxrwxrwx 10 dometech dometech   4096 janv. 16 12:34 pools
drwxr-xr-x  4 dometech dometech   4096 janv. 16 12:34 profiler
drwxr-xr-x  2 dometech dometech   4096 janv. 16 12:34 sessions
-rw-rw-rw-  1 dometech dometech 120497 janv. 16 12:35 srcApp_KernelBenchmarkDebugContainerCompiler.log
-rw-rw-rw-  1 dometech dometech      6 janv. 16 12:35 srcApp_KernelBenchmarkDebugContainerDeprecations.log
-rw-rw-rw-  1 www-data www-data    826 janv. 16 12:35 srcApp_KernelBenchmarkDebugContainer.php
-rw-rw-rw-  1 www-data www-data  36921 janv. 16 12:35 srcApp_KernelBenchmarkDebugContainer.php.meta
-rw-r--r--  1 dometech dometech  13649 janv. 16 12:34 srcApp_KernelBenchmarkDebugContainerUrlGenerator.php
-rw-r--r--  1 dometech dometech   2493 janv. 16 12:34 srcApp_KernelBenchmarkDebugContainerUrlGenerator.php.meta
-rw-r--r--  1 dometech dometech  10857 janv. 16 12:34 srcApp_KernelBenchmarkDebugContainerUrlMatcher.php
-rw-r--r--  1 dometech dometech   2493 janv. 16 12:34 srcApp_KernelBenchmarkDebugContainerUrlMatcher.php.meta
-rw-rw-rw-  1 www-data www-data 444270 janv. 16 12:35 srcApp_KernelBenchmarkDebugContainer.xml
-rw-rw-rw-  1 www-data www-data  36025 janv. 16 12:35 srcApp_KernelBenchmarkDebugContainer.xml.meta
drwxr-xr-x  2 dometech dometech   4096 janv. 16 12:34 translations
drwxr-xr-x 15 dometech dometech   4096 janv. 16 12:34 twig

Я думаю, что мое приложение не создает одинаковые разрешения между моей консолью и браузером, но я не знаю, почему.

1 Ответ

0 голосов
/ 16 января 2019

Ваш веб-сервер работает с обычным пользователем www-data (который принадлежит к группе www-data), в то время как ваш консольный вызов PHPUnit создал кэш с пользователем и группой вашего пользователя оболочки. Это распространено и не должно вызывать удивления - почему пользователь оболочки должен иметь возможность писать данные, используя другого пользователя?

Самое простое решение - использовать разные среды, так как вы также можете использовать разные настройки для запуска тестов или доступа к отображаемым веб-сайтам.

Если вы не хотите использовать разные среды, в документации Symfony есть несколько идей для вас:

  • использовать одного и того же пользователя для оболочки и веб-сервера (что означает, что www-data больше не должен использоваться)
  • использовать списки ACL для вашей папки кэша (чтобы впоследствии у пользователя www-data и пользователя оболочки были полные разрешения)
...