【发布时间】:2012-12-13 15:18:36
【问题描述】:
我正在尝试开发一个 CakePHP 应用程序,并且我正在使用 Vagrant 来运行一个测试环境。但是,我在浏览器中收到此错误
Warning (2):
session_start() [http://php.net/function.session-start]:
open(/var/lib/php/session/sess_speva7ghaftl8n98r9id5a7434, O_RDWR) failed:
Permission denied (13) [CORE/Cake/Model/Datasource/CakeSession.php, line 614]
我可以通过 SSH 连接到虚拟机并执行此操作来消除错误
[vagrant@myserver ~]$ sudo su -
[root@myserver ~]# chown -R vagrant. /var/lib/php/session/
我不想每次重新启动虚拟机时都必须这样做,所以我尝试将其添加到 myserver.pp
exec { 'chown':
command => 'chown -R vagrant. /var/lib/php/session/',
path => '/bin',
user => 'root'
}
但是在启动虚拟机时出现错误...
err:
/Stage[main]/Myserver/Exec[chown]/returns: change from notrun to 0 failed:
chown -R vagrant. /var/lib/php/session/
returned 1 instead of one of [0] at /tmp/vagrant-puppet/manifests/myserver.pp:35
我在互联网上找不到任何关于如何使用exec 的有用示例,而且我以前从未使用过 Vagrant 或 Puppet,所以上面的代码只是我能想到的最好的猜测,我很抱歉如果这是一个简单的解决方法来让它工作。
我已经在vm中使用which chown验证了路径是/bin,并且命令与我自己在vm中运行时的命令完全相同。我认为是用户造成了问题。我有那条线吗?甚至可以从 .pp 文件以 root 身份执行命令吗?
【问题讨论】: