Locally, my app runs fine on and writes to it's logs.
My production server is running CentOS with an Apache server running Passenger. When trying to debug, I noticed my log files were not being written to. First thing I did was chmod 0666 them, and when I found out that didn't work I looked at my apache log. I found this:
Rails Error: Unable to access log
file. Please ensure that
/var/www/vhosts/mysite.com/rails/exp/releases/20091124020342/log/production.log
exists and is chmod 0666. The log
level has been raised to WARN and the
output directed to STDERR until the
problem is fixed.
(Note: I am deploying with capistrano)
Anyway, I googled around and found people saying it's an SELinux issue, so I looked on passenger's doc's and found this: http://www.modrails.com/documentation/Users%20guide.html#%5Fmy%5Frails%5Fapplication%5F8217%5Fs%5Flog%5Ffile%5Fis%5Fnot%5Fbeing%5Fwritten%5Fto
which basically says do this: chcon -R -h -t httpd_sys_content_t /path/to/your/rails/app
However, when I fill in the proper path I get: Operation not supported
.
Pretty stumped…any ideas?
Best Answer
Check out using top which user the passenger processes are run as. IIRC it won't necessarily be the www-data/apache user.