【问题标题】:Symfony, clear:cache "Failed to remove directory " on VagrantSymfony,清除:缓存“无法删除目录”在 Vagrant
【发布时间】:2017-07-09 09:13:12
【问题描述】:

我在清除 Vagrant VM 中的缓存时遇到问题。这是配置文件的一部分:

synced_folder:
    vflsf_19mkvk0x71hk:
        source: /var/www/vm/vmnginx
        target: /var/www
        sync_type: default
        smb:
            smb_host: ''
            smb_username: ''
            smb_password: ''
            mount_options:
                dir_mode: '0775'
                file_mode: '0664'
        rsync:
            args:
                - '--verbose'
                - '--archive'
                - '-z'
            exclude:
                - .vagrant/
                - .git/
                - vendor/
            auto: 'true'
        owner: vagrant
        group: www-data

错误消息告诉我无法删除文件夹:

$ sfconsole cache:clear -vv
22:46:17 INFO      [php] User Deprecated: The "Symfony\Component\Console\Event\ConsoleExceptionEvent" class is deprecated since version 3.3 and will be removed in 4.0. Use the ConsoleErrorEvent instead. ["exception" => Symfony\Component\Debug\Exception\ContextErrorException {trace: { …} …}] []


  [Symfony\Component\Filesystem\Exception\IOException]                                       
  Failed to remove directory "/var/www/formation/symfony-blog/var/cache/de~/translations": . 


Exception trace:
 () at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php:176
 Symfony\Component\Filesystem\Filesystem->remove() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php:172
 Symfony\Component\Filesystem\Filesystem->remove() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php:70
 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->execute() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:264
 Symfony\Component\Console\Command\Command->run() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:887
 Symfony\Component\Console\Application->doRunCommand() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:223
 Symfony\Component\Console\Application->doRun() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:81
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /var/www/formation/symfony-blog/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:130
 Symfony\Component\Console\Application->run() at /var/www/formation/symfony-blog/bin/console:28

cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

我在“www-data”组中添加了“vagrant”用户。

文件夹:

$ ll var/cache/
total 16K
drwxrwxr-x 1 vagrant www-data 4,0K juil.  8 22:43 ./
drwxrwxr-x 1 vagrant www-data 4,0K juil.  7 16:01 ../
drwxrwxr-x 1 vagrant www-data 4,0K juil.  8 22:43 de~/
drwxrwxr-x 1 vagrant www-data 4,0K juil.  8 22:43 dev/

这里是虚拟机外部的“真实”文件夹:

✔ /var/www/vm/vmnginx/formation/symfony-blog [master {origin/master}|✚ 9] 
11:10 $ ll var/cache/
total 16K
drwxrwxr-x 4 fabrice fabrice 4,0K juil.  9 09:56 ./
drwxrwxr-x 5 fabrice fabrice 4,0K juil.  7 16:01 ../
drwxrwxr-x 3 fabrice fabrice 4,0K juil.  9 09:56 de~/
drwxrwxr-x 7 fabrice fabrice 4,0K juil.  9 09:56 dev/

而且,即使使用 sudo,我也无法更改权限。没有错误消息,但什么也没发生。

“rm -fr var/cache”有效。

你能帮帮我吗?

面料

【问题讨论】:

  • 请显示ll var/cache/de~/输出

标签: symfony caching vagrant


【解决方案1】:

在必须的情况下,这是最后的治疗,但它的工作。看看那里:

https://symfony.com/doc/current/setup/file_permissions.html#using-acl-on-a-system-that-supports-setfacl-linux-bsd

【讨论】:

  • 您好,感谢您的帮助。我尝试使用 ACL。 HTTPDUSER 设置为“www-data”。但是,这两个命令“setfacl”(带 sudo)对所有文件都返回“不支持操作”。
  • Sudo 只是具有 root 权限的当前用户,您可以通过安装使用 sudo 并将当前用户添加到 sudo groupe,或者您可以通过替换 whoami(和 '')以 root 身份运行命令当前用户名
  • 嗨。我再次收到相同的消息“不支持操作”:(。我设置了 HTTPDUSER=vagrant,并运行 setfacl 命令:同样的问题。我读过我必须在 fstab 中设置“acl”(在分区上共享),这是真的吗?
  • 在 web/uploads 文件夹中尝试 chmod 777 时遇到同样的问题(使用带有 DoctrineExtensions 的 Uploadable):(
【解决方案2】:
$ ll var/cache/de~
total 1,3M
drwxrwxr-x 1 vagrant www-data 4,0K juil.  9 09:56 ./
drwxrwxr-x 1 vagrant www-data 4,0K juil.  9 09:56 ../
-rwxrwxr-- 1 vagrant www-data 130K juil.  8 22:43 appDevDebugProjectContainerCompiler.log*
-rwxrwxr-- 1 vagrant www-data 459K juil.  9 09:56 appDevDebugProjectContainer.php*
-rwxrwxr-- 1 vagrant www-data  26K juil.  9 09:56 appDevDebugProjectContainer.php.meta*
-rwxrwxr-- 1 vagrant www-data 365K juil.  8 22:43 appDevDebugProjectContainer.xml*
-rwxrwxr-- 1 vagrant www-data 314K juil.  8 22:43 classes.php*
drwxrwxr-x 1 vagrant www-data 4,0K juil.  9 09:56 pools/

$ ll var/cache/de~/pools/
total 8,0K
drwxrwxr-x 1 vagrant www-data 4,0K juil.  9 09:56 ./
drwxrwxr-x 1 vagrant www-data 4,0K juil.  9 09:56 ../

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-28
    • 2020-06-25
    • 2018-05-27
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多