如何告诉乘客使用其他用户代替www-data?

Hel*_*rld 1 ubuntu capistrano ruby-on-rails passenger

我有一个在有乘客和apache的ubuntu 12服务器上运行的rails 3应用程序。我正在使用Capistrano部署我的应用程序,并设置了以下变量...

  set :user, "deployer"
  set :use_sudo, false
Run Code Online (Sandbox Code Playgroud)

如果deploy_to文件夹归部署者用户所有,则文件将被正确部署,但是乘客无法启动,因为它试图访问部署者用户所拥有的app文件夹中的文件。我尝试创建一个新组,并将www-data和deployer连同文件一起分配给该组,但是这没有用,乘客在启动时仍然超时。我还尝试将所有文​​件设置为不安全的文件,例如chmod 777,但仍然无法正常工作。我也尝试设置PassengerDefaultUser,但重启后也无济于事。但是,如果我将文件夹反复递归到www-data,它将启动,但是现在capistrano无法部署到该文件夹​​,因为它是www-data而不是部署者所有的。

是否有一个简单的解决方法可以在乘客端或Capistrano端进行此工作?我不确定www-data用户密码是什么,因此使用该用户进行部署不是一种选择。

Siv*_*iva 5

在您的配置文件中,更改“ PassengerDefaultUser”和“ PassengerDefaultGroup ”设置(如有必要)

PassengerDefaultUser deployer
Run Code Online (Sandbox Code Playgroud)