4

我有一个带有Passenger Phusion 的Ubuntu Hardy 切片,它提供了一个rails 应用程序。我也在使用带有thinking_sphinx插件的sphinx全文搜索

我可以从终端运行这个命令:

sudo rake ts:index RAILS_ENV=production

但如果此命令在 capistrano 部署文件中:

运行“cd #{current_path}; rake thinking_sphinx:index RAILS_ENV=production”

产生以下错误:

  • 执行“部署:after_update”
    • 执行“thinking_sphinx:index”
    • 执行“cd /home/kollar/apps/kinfonet/current; rake thinking_sphinx:index RAILS_ENV=production” 服务器:[“173.45.226.102”] [173.45.226.102] 执行命令 * [err :: 173.45.226.102] rake 中止!* [err :: 173.45.226.102] 权限被拒绝 - /home/kollar/apps/kinfonet/shared/db/sphinx

假设这是 apache 的权限问题,我关注了关于 slicehost 文档的文章并做了以下操作:

sudo chgrp -R www-data /home/kollar/apps/kinfonet/current

sudo chmod -R 2750 /home/kollar/apps/kinfonet/current

sudo chmod -R 2770 /home/kollar/apps/kinfonet/current/log

sudo chmod -R 2770 /home/kollar/apps/kinfonet/shared

sudo chmod -R 2770 /home/kollar/apps/kinfonet/shared/db

sudo chmod -R 2770 /home/kollar/apps/kinfonet/shared/db/sphinx

sudo chmod -R 2770 /home/kollar/apps/kinfonet/shared/pids

错误仍然存​​在,现在该网站的访问者无法访问他们位于 /home/kollar/apps/kinfonet/shared/system/avatars 中的个人资料图片

如果我在浏览器上调用图像的路径,则会出现 apache/passenger 禁止错误:您无权访问此服务器上的 /system/avatars/48/thumb_BR.jpg

有人可以帮助修复权限 - 即撤消我对 www-data 所做的任何事情并告诉我如何设置适当的权限吗?

4

2 回答 2

2

如果您仍然看到 403 Forbidden 错误,那么您需要告诉 Apache 从您的 to 遵循该符号链接是可以app/current/systemapp/shared/system。确保你的虚拟主机定义中有这个:

Options FollowSymLinks
于 2009-06-04T20:39:40.390 回答
0

感谢您尝试提供帮助。

  1. “哪个用户在远程服务器上运行部署命令?” -- 用户是 kollar

  2. 当您在没有sudo 的情况下与该用户运行相同的 rake 任务时会发生什么?

让它工作。在 shared/db 上运行 ls-l 并看到它被设置为 root 作为用户和 root 作为组。将两者都更改为我的用户“kollar”,现在 rake 可以从 cap deploy.rb 文件运行而无需 sudo。

我最大的问题仍然是 apache 在尝试访问存储用户上传图像的共享/系统文件夹时返回了 Forbidden 403 权限错误:

您无权访问此服务器上的 /system/avatars/51/thumb_DSC00010.JPG。Apache/2.2.8 (Ubuntu) Phusion_Passenger/2.2.2 服务器端口 80

从 /home/path/to/app/current/system 到 /home/path/to/app/shared/system 有一个符号链接

在共享/系统上运行 ls -l 会产生:drwxrws--- 7 kollar kollar 4096 Jun 2 06:47 avatars

我尝试在此文件夹中添加 www-data 作为组,但这似乎并不能解决问题。对此的任何帮助将不胜感激。

于 2009-06-02T07:04:39.997 回答