Bac*_*cko 6 ruby ubuntu ruby-on-rails paperclip ruby-on-rails-3
我在运行Ubuntu 10.04 LTS的远程VPS机器上以生产模式运行Ruby on Rails 3.0.9(在开发模式下我在MAC OS Snow Leopard上使用RoR),我想知道如何管理以下场景.
我使用Apache2和Phusion Passenger,我已经将Virtual Host设置为:
<VirtualHost *:80>
ServerName project_name.com
DocumentRoot /srv/www/project_name.com/public
<Directory /srv/www/project_name.com/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
更多,我使用Paperclip gem,并且,作为很多人在网络上使用它在生产模式下,我在处理(图像)文件时收到以下错误:
Errno::EACCES (Permission denied - /srv/www/project_name.com/public/images/001):
...
Run Code Online (Sandbox Code Playgroud)
我听说为了避免这些错误的解决方案是设置正确的文件夹权限(手动! - 我不知道是否可以自动化"设置"过程......顺便说一下:是否可能?)但是我认为有更好的方法来解决这个问题.如果是这样,我该怎么办?
@M。Cypher 很接近,尽管我看到的最大问题是允许用户上传任意文件,然后将它们标记为可执行文件。这是一场寻找发生地点的灾难。
find /srv/www/project_name.com/public -type d -exec chmod 755 {}\;
find /srv/www/project_name.com/public -type f -exec chmod 644 {}\;
Run Code Online (Sandbox Code Playgroud)
这将在目录上设置可执行文件(必要),但不会在文件上设置可执行文件。