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.