title: Linode Update - 403 Forbidden with Rails and Passenger Nginx
body: <p>Hello My App was working fine, until Linode made some kind of hardware update on the server. All the files on the server are still there, and everything seems to be the same as before. I contacted Linode, and they mentioned it may be a permission problem somewhere (which I can't find) and they cannot be of more help. </p>
  
  <p>The Nginx error log shows the following:</p>
  
  <pre><code>2015/06/21 18:07:23 [error] 2870#0: *19684 directory index of
  "/home/aurelplouf/apps/myapp/current/public/" is forbidden, 
  client: XXX.XXX.XXX.XXX, server: XXX.XXX.XX.XX, request: "GET / HTTP/1.1", 
  host: "myapp.com"
  </code></pre>
  
  <p>I am a bit at a loss because nothing changed from my part. </p>
  
  <p>I checked the <code>passenger-config --root</code></p>
  
  <pre><code>/home/aurelplouf/.rvm/gems/ruby-2.1.2@rails3.2/gems/passenger-4.0.53
  </code></pre>
  
  <p><strong>which ruby</strong></p>
  
  <pre><code>/home/aurelplouf/.rvm/rubies/ruby-2.1.2/bin/ruby
  </code></pre>
  
  <p>and the <strong>nginx.conf</strong> with the following setup:</p>
  
  <pre><code>http {
      passenger_root /home/aurelplouf/.rvm/gems/ruby-2.1.2@rails3.2/gems/passenger-5.0.11;
      passenger_ruby /home/aurelplouf/.rvm/gems/ruby-2.1.2@rails3.2/wrappers/ruby;
  
      include       mime.types;
      default_type  application/octet-stream;
      sendfile        on;
      keepalive_timeout  65;
  
      server {
          listen       80;
          server_name  xxx.xxx.xx.xx myapp.com www.myapp.com *.myapp.com
          root /home/aurelplouf/apps/myapp/current/public;
          passenger_enabled on;
  
          location / {
              #root   html;
              # root /home/aurelplouf/apps/myapp/current/public;
              # index  index.html index.htm;
              passenger_enabled on;
          }
  
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
      }
  }
  </code></pre>
  
  <p><strong>UPDATE</strong>
  Finally I checked the file permissions in the public folder</p>
  
  <pre><code>aurelplouf@ruby:~/apps/myapp/current$ ls -al public
  total 32
  drwxrwxr-x  2 aurelplouf aurelplouf 4096 Jun 21 17:15 .
  drwxrwxr-x 15 aurelplouf aurelplouf 4096 Jun 21 17:15 ..
  -rw-rw-r--  1 aurelplouf aurelplouf  728 Feb 15  2014 404.html
  -rw-rw-r--  1 aurelplouf aurelplouf  711 Feb 15  2014 422.html
  -rw-rw-r--  1 aurelplouf aurelplouf  643 Feb 15  2014 500.html
  lrwxrwxrwx  1 aurelplouf aurelplouf   51 Jun 21 17:13 assets -&gt; /home/aurelplouf/apps/myapp/shared/assets
  -rw-rw-r--  1 aurelplouf aurelplouf 1150 Feb 15  2014 favicon.ico
  -rw-rw-r--  1 aurelplouf aurelplouf  431 Oct 21  2014 robots.txt
  -rw-rw-r--  1 aurelplouf aurelplouf  340 Oct 21  2014 sitemap.xml.gz
  lrwxrwxrwx  1 aurelplouf aurelplouf   51 Jun 21 17:15 system -&gt; /home/aurelplouf/apps/myapp/shared/system
  lrwxrwxrwx  1 aurelplouf aurelplouf   52 Jun 21 17:15 uploads -&gt; /home/aurelplouf/apps/myapp/shared/uploads
  </code></pre>