我正在嘗試開發一個CakePHP應用程序,並使用Vagrant運行測試環境。然而,我在瀏覽器中收到此錯誤流浪傀儡更改pp文件夾的所有者exec
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方式連接到虛擬機,並做
[[email protected] ~]$ sudo su -
[[email protected] ~]# chown -R vagrant. /var/lib/php/session/
擺脫錯誤的,我不希望有這樣的每一次做我重新啓動虛擬機,所以我嘗試添加這myserver.pp
exec { 'chown':
command => 'chown -R vagrant. /var/lib/php/session/',
path => '/bin',
user => 'root'
}
,但在啓動時VM它得到一個錯誤......
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身份執行命令?
我剛剛測試了你的前兩個建議。兩者都失敗了,但至少第二個提供了一個有用的錯誤信息。它失敗了,因爲它正在/ var/lib/php存在之前運行。我不會認爲這會是這種情況,因爲我在該類的頂部包含了「apache :: php」,但是在日誌中進一步閱讀後,php實際上正在被添加。我必須找到實際發生的位置,但我認爲我會專注於以root身份開始。 – jonhopkins
您可以通過使用文件資源需要 文件{「在/ var/lib中/ PHP /會話」有點管理操作順序: 確保=>目錄, 組=>「無業遊民」, 所有者=> 「vagrant」, recurse => true, require => Class ['apache :: php'] } – joshcody