- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我遇到了一个与在 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 时,权限没有改变。但是,当我从外部 chmod 文件或目录时,webroot 文件夹中的 Vagrant 环境,权限仍然存在。由于 symfony 在环境中没有 r/w 权限,它无法创建必要的缓存和日志文件。当我从 osx 命令运行 symfony 时,一切正常。
有没有人知道如何更改/webroot 目录的权限,以便 vagrant 环境中的东西实际上可以读取和写入它,因为 chmod 似乎不起作用?
最佳答案
Update as of 15th Jan 2016. Instructions for Vagrant 1.7.4+ and Symfony 3. This works.
在全新的 Ubuntu 14.04 安装中,安装了 ACL,但我无法使用 +a 或 setfacl 来修复权限问题,当然,一旦您在 vagrant 中更改终端中的任何权限,它们就会重置为 Vagrant :又是 Vagrant 。
我在 vagrant 文件中添加了以下内容:
# Symfony needs to be able to write to it's cache, logs and sessions directory in var/
config.vm.synced_folder "./var", "/vagrant/var",
:owner => 'vagrant',
:group => 'www-data',
:mount_options => ["dmode=775","fmode=666"]
这告诉 Vagrant 同步 var/logs 和 var/cache(不要与/var/混淆,它们在根 Symfony 目录中)并让它们归 vagrant:www-data 所有。这与执行 sudo chown vagrant:www-data var/
相同,除了 Vagrant 现在为您执行并强制执行,而不是强制执行 vagrant:vagrant。
请注意这里没有 777 个“hacks”。
一旦我添加了它,我就没有在 apache 日志中收到任何更多的权限错误,并且我得到了一个漂亮的 Symfony 欢迎屏幕。我希望这对某人有所帮助!
关于php - Vagrant 和 symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18029973/
由于我在一个团队中工作,我想让与 vagrant(和 Chef-solo)一起工作的过程尽可能顺利。 当团队中的某人更改厨师食谱、角色或其他任何内容时,我希望所有其他团队成员通过在下一个“Vagran
在学习了几天之后,我很高兴能够成功设置我的 VM 并运行 Laravel 起始页。在那里很开心:) 有人可以澄清“何时”使用 Vagrant 函数。我的问题: 如果我打算关闭我的电脑,你应该使用 ha
如果我更改了配置脚本或更糟的基本操作系统,有没有办法强制 vagrant 重新配置或重新下载基本框?我试图改变 config.vm.box和 config.vm.box_url ,但是 vagrant
默认情况下,vagrant将框提取到用户主驱动器-%HOMEDRIVE%\.vagrant.d\boxes。这是在网络位置上。虽然有利于可靠存储,但速度非常慢。 如何更改盒子的位置? 最佳答案 当然。
我的系统上有许多测试 Vagrant 盒,我正在整理它们。我安装了插件,例如vagrant plugin install vagrant-hostsupdater和vagrant plugin ins
我的系统上有许多测试 Vagrant 盒,我正在整理它们。我安装了插件,例如vagrant plugin install vagrant-hostsupdater和vagrant plugin ins
我在理解他们网站上的 vagrant 工作流程时遇到了一些麻烦。 我之前一直在做一个项目,经历了更改目录和设置 vagrant box 等的整个过程。我什至运行了 bundle install 来安装
我在一个盒子上有一些相当复杂的配置,之后我想以编程方式做等效于 vagrant reload 的事情。 . 我见过的最好的解决方案是 here ,但是该链接上的代码似乎在 Vagrant 1.4+ 上
我无法在 Windows 7 机器上在我们的公司代理后面执行 vagrant up(或 vagrant add)。我尝试过使用和不使用 http_proxy/https_proxy 环境变量。我尝试将
是否可以将配置脚本中的值返回给 vagrant? response = config.vm.provision( "shell", path: "script.sh" ) if response =
这两个 Vagrant 插件有什么区别?我正在使用 vagrant-hostmanager,它可以更新主机上的/etc/hosts 文件,以及 guest 机器上的文件,支持多机 vagrant 设置
我正在使用vagrant和ansible来配置虚拟机,并且工作正常。这个可笑的剧本克隆了一个git repo,安装了它并运行了一个服务守护进程。 我还希望有一个无所事事的命令,该命令执行一个单独的“更
在浏览 Vagrant 教程时,我看到了两种在主机和 guest 计算机之间共享文件夹的选项 - 共享文件夹和同步文件夹。它们之间有什么区别? 或者,在 Vagrant 2 中,同步文件夹是共享文件夹
我在 Vagrant 中遇到同步文件夹的问题。我的配置非常简单: Vagrant.configure(2) do |config| config.vm.box = "ubuntu/xenial64
我正在尝试提供一个主-主MySQL对,并且只有它们都启动时才能正确配置它们。 Vagrant.configure("2") do |config| web.vm.box = "centos/7"
我已经在目录D:\vagrant\precise32\02-lamp\中执行了以下命令(在Windows中,使用Git Bash) $ vagrant box add precise32 http:/
尝试使用 Vagrant 的安装程序在 Windows 7 X64 上安装 Vagrant - vagrant_1.7.0.msi 安装正常,但无法使用 vagrant。在任何命令上,例如 vagra
我想禁用VirtualBox Guest Additions。我不会将它们用于文件夹同步等操作,对于我正在使用的盒子(例如centos / 7),无论如何它们都无法构建。有什么办法告诉流浪汉不要尝试在
我在 VirtualBox 上使用 Vagrant。昨天,我通过运行保存了我的项目的快照: $ vagrant snapshot save 'my-project-date-time' 今天,我对我想
我使用来自 vagrant init 的默认配置配置了 Vagrant (1.7.4)在 OS X (10.11.4) 上使用最新版本的 VirtualBox (5.0.16 r105871) 和最新
我是一名优秀的程序员,十分优秀!