【问题标题】:using /dev/shm on vagrant - PERMISSION ERROR / MacOSX在 vagrant 上使用 /dev/shm - 权限错误 / MacOSX
【发布时间】:2014-11-12 13:27:22
【问题描述】:

我正在使用 Vagrant 在我的 MacOSX 上的 Linux Ubuntu 环境中进行开发。

使用 Symfony2。数据库和编码一切都很好。

当我尝试清除缓存并安装资产时,它看起来已经完成,但我认为我无法使用任何缓存,因为我的资产没有更改。

所以,我尝试将缓存目录更改为/dev/shm

刷新我的页面并查看该目录以查看创建的任何目录,我看到由 www-data 用户和组成功创建的目录。所以 php-fpm 必须创建那个目录,这样才有效?

我已尝试再次生成资产,但出现权限错误...

更改缓存目录:

public function getCacheDir()
{
    if (in_array($this->environment, array('dev', 'test'))) {
        return '/dev/shm/appname/cache/' .  $this->environment;
    }

    return parent::getCacheDir();
}

public function getLogDir()
{
    if (in_array($this->environment, array('dev', 'test'))) {
        return '/dev/shm/appname/logs';
    }

    return parent::getLogDir();
}

我的场景:

文件由 www-data 创建。当我尝试在控制台(终端)上安装资产时;

php app/console assets:install web --symlink

php-cli 或 php-cgi 与另一个用户一起工作,并且不允许修改该文件。

我能做什么?我被困住了!

【问题讨论】:

    标签: php symfony caching vagrant shared-memory


    【解决方案1】:

    我尝试在 Ubuntu 主机上做同样的事情。最后我所做的就是创建 app/cache 作为 /run/shm/sf-cache 的目录链接。

    这是我在配置期间运行的设置 bash 脚本......

    # create the cache path
    sudo mkdir -p /run/shm/sf-cache/
    sudo chmod 777 /run/shm/sf-cache
    
    # Copy over the rest of the files (from /vagrant to /var/www/sf-project/)
    /vagrant/provision/resync_files.sh
    
    # Setup the log folder
    sudo chmod 777 /var/www/sf-project/app/logs
    
    cd /var/www/sf-project
    
    # Link the Cache folder to the folder in the ram drive.
    sudo ln -s /run/shm/sf-cache/ app/cache
    

    但是您会注意到(至少对我而言)唯一的方法是创建驻留在 /var/www/ 中 /vagrant 中的文件的副本,因为 /var/www 位于本地文件系统上, /vagrant 不是,它在主机上。

    使用 PHPStorm 这不是问题,因为我只是通过 samba 共享 /var/www/sf-project 文件夹,然后将其映射为文件夹。在我的 ubuntu 主机上(我正在从 Windows 迁移到 Ubuntu),我挂载 samba 共享,然后创建一个指向挂载点的目录链接,然后在 PHPStorm 中设置部署服务器以将其部署到本地文件夹因为它是 samba 共享,所以将其直接复制到 /var/www/sf-project 文件夹中。

    如果您不使用 PHPStorm,我很欣赏它的更多工作,但这就是我解决该特定问题的方式。我发现这比尝试移动缓存文件夹更容易,我们有一个额外的复杂性,不是每个开发人员都在使用 Vagrant 盒子,所以我不能简单地更改代码而不破坏他们的系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-17
      • 2018-02-19
      • 1970-01-01
      • 2016-04-03
      • 2021-04-10
      • 2016-04-25
      • 2020-05-11
      • 1970-01-01
      相关资源
      最近更新 更多