Re: Problem with file upload

jzw
Thu, 28 Jun 2007 22:52:23 -0000

It has been a couple of weeks and I still have not figured this
out....  Surely someone out there has an idea....

On Jun 13, 4:17 pm, jzw
<john.zachary.willi...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:
> I have a simple app that allows users to upload image files to the web
> server. It works fine on my laptop with Webrick, when I deploy to the
> web server it also works fine with webrick.  However, when I try to
> connect via Apache, the files get uploaded to the /tmp directory, but
> the never make it to the correct directory within the application (/
> public/images/photos).  I am sure that this is some permissions
> problem with the Apache user (Apache runs as user:nobody,
> group:nobody) but it appears that all of the correct permissions are
> in place.  Here are the permissions on the photos directory:
>
> drwxrwxr-x  2 jzw    nobody   4096 Jun 13 15:18 photos/
>
> And here is the error:
>
> Errno::EACCES (Permission denied - public/images/photos/28-full.jpg):
>     /home/jzw/public_html/my_app/app/models/photo.rb:261:in
> `initialize''
>     /home/jzw/public_html/my_app/app/models/photo.rb:261:in `open''
>     /home/jzw/public_html/my_app/app/models/photo.rb:261:in
> `save_full''
>     /home/jzw/public_html/my_app/app/models/photo.rb:250:in
> `save_file''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:333:in
> `send''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:333:in
> `callback''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:330:in
> `each''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:330:in
> `callback''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:243:in
> `create_or_update''
>     /vendor/rails/activerecord/lib/active_record/base.rb:1548:in
> `save_without_validation''
>     /vendor/rails/activerecord/lib/active_record/validations.rb:752:in
> `save_without_transactions''
>     /vendor/rails/activerecord/lib/active_record/transactions.rb:
> 129:in `save''
>     /vendor/rails/activerecord/lib/active_record/connection_adapters/
> abstract/database_statements.rb:59:in `transaction''
>     /home/jzw/public_html/my_app/public/dispatch.fcgi:34
>
> Errno::EACCES (Permission denied - public/images/photos/28-full.jpg):
>     /home/jzw/public_html/my_app/app/models/photo.rb:261:in
> `initialize''
>     /home/jzw/public_html/my_app/app/models/photo.rb:261:in `open''
>     /home/jzw/public_html/my_app/app/models/photo.rb:261:in
> `save_full''
>     /home/jzw/public_html/my_app/app/models/photo.rb:250:in
> `save_file''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:333:in
> `send''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:333:in
> `callback''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:330:in
> `each''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:330:in
> `callback''
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:243:in
> `create_or_update''
>     /vendor/rails/activerecord/lib/active_record/base.rb:1548:in
> `save_without_validation''
>     /vendor/rails/activerecord/lib/active_record/validations.rb:752:in
> `save_without_transactions''
>     /vendor/rails/activerecord/lib/active_record/transactions.rb:
> 129:in `save''
>     /vendor/rails/activerecord/lib/active_record/connection_adapters/
> abstract/database_statements.rb:59:in `transaction''
>     /vendor/rails/activerecord/lib/active_record/transactions.rb:95:in
> `transaction''
>     /vendor/rails/activerecord/lib/active_record/transactions.rb:
> 121:in `transaction''
>     /vendor/rails/activerecord/lib/active_record/transactions.rb:
> 129:in `save''
>     /home/jzw/public_html/my_app/app/controllers/admin/
> photos_controller.rb:79:in `new_or_edit''
>     /home/jzw/public_html/my_app/app/controllers/admin/
> photos_controller.rb:22:in `new''
>     /vendor/rails/actionpack/lib/action_controller/base.rb:1097:in
> `send''
>     /vendor/rails/actionpack/lib/action_controller/base.rb:1097:in
> `perform_action_without_filters''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:723:in
> `call_filters''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:713:in
> `call_filters''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:661:in
> `call''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:661:in
> `proxy_before_and_after_filter''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:482:in
> `call''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:482:in
> `call''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:711:in
> `call_filters''
>     /vendor/rails/actionpack/lib/action_controller/filters.rb:680:in
> `perform_action_without_benchmark''
>     /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:
> 66:in `perform_action_without_rescue''
>     /usr/lib/ruby/1.8/benchmark.rb:293:in `measure''
>     /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:
> 66:in `perform_action_without_rescue''
>     /vendor/rails/actionpack/lib/action_controller/rescue.rb:83:in
> `perform_action''
>
> Any help is greatly appreciated.