我正在尝试开发一个 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 连接到 vm 并执行
[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,所以上面的代码只是我能想到的最好的猜测,如果这是一个简单的修复,我深表歉意让这个工作。
我已经which chown
在 vm 中验证了路径是/bin
,并且该命令与我自己在 vm 中运行它时的命令完全相同。我认为是用户造成了问题。我有那条线吗?甚至可以从 .pp 文件以 root 身份执行命令吗?