【发布时间】:2013-08-04 11:54:30
【问题描述】:
我遇到了一个与在 vagrant 环境中安装 Symfony2 相关的奇怪问题。该环境已正确设置,并且正在运行一个 Web 服务器,该服务器正在从与 vagrant 环境共享的文件夹中提供文件,该文件夹位于 vagrant 的基本目录中。
基本上,vagrant 在目录 foo 中启动,然后在 foo 中,有一个名为 webroot 的目录。 Vagrant 自动共享 foo 目录。 Apache 服务器设置为运行,因此 webroot 是基本的 http 目录。这一切都很好,我能够提供基本的 HTML、PHP 和 MySQL 连接被测试很好。
我使用 composer 以推荐的方式安装 vagrant,安装到 /webroot/ 中名为 Symfony 的目录中。所有文件现在都存在于正确的目录中。配置是正确的,在 /config.php 中没有 Symfony 声称需要更改的项目。
当我尝试加载 /app_dev.php 时出现问题。它抛出一个异常,声称它无法在 /app 目录中创建名为 cache 的文件。
由于我正在使用的 vagrant box 不支持 chmod +a,我选择通过在 app_dev 中取消注释 umask(0000) 来设置权限。假设这是一个权限问题,我尝试使用 chmod 将 vagrant 环境和 osx 内的所有权限都调整为 777。
奇怪的是,当我在 vagrant 环境中对文件或目录进行 chmod 时,它声称正确设置了 777,但是当我 ls -l 时,权限并没有改变。但是,当我从 OUTSIDE Webroot 文件夹中的 vagrant 环境中对文件或目录进行 chmod 时,权限仍然存在。由于 symfony 在环境中没有 r/w 权限,它无法创建必要的缓存和日志文件。当我从 osx 的命令运行 symfony 时,一切正常。
有没有人知道如何更改 /webroot 目录的权限,以便 vagrant 环境中的东西实际上可以读取和写入它,因为 chmod 似乎不起作用?
【问题讨论】:
标签: php macos apache symfony vagrant