Configure a VirtualHost for Rails Apps with Apache+Passenger on subdomain

  • Posted September 10, 2013

Hi :)

I followed some tutos and did a search on my issue on google, but no answer found worked for me. I hope you will be able to help me. Here is my configuration :

First, I have installed a LAMP for my PHP projects, so apache2 and mysql are correctly installed. I work in the folder : /home/ME/www (where I put my projects) And then, I linked with a symlink my folder /var/www eg: ln -s /home/pixy/www/project1 /var/www/project1

And I have correctly added a vhost (in sites-available, and a2ensite…) This PHP project correctly works on my subdomain : (don’t try, project1 is fake for the example ^^)

I also would like to run my Rails (4) applications, so I followed the tuto on Digital Ocean to install passenger with apache2. I think the compilation succeed, I had no problem (I think…) I also put the three lines given at the end of the install at the end of my apache2.conf file

Then I put a new project on my workspace : /home/pixy/www/blog

I want to access to this application with a vhost, with the subdomain :

I tried a lot of configurations, but no one worked =( I tried to :

  • symlink /home/pixy/www/blog /var/www/blog and then configure my DocumentRoot to this path : /var/www/blog
  • No symlink, and directly put the DocumentRoot at /home…

And others but I don’t remember

I pastebin you my actual configurations :

I linked as symlink : /home/pixy/www/blog /var/www/rails/blog

You can try, it doesn’t work… What is wrong/missing with this config ? Do I have to a2ensite the config ? (I think I did it) Do I have to put the PassengerAppRoot ?

I work with ruby 2 and rails 4

If you have any question on my config I forgot to tell here ask me.

Many thanks in advance for your help ! :)


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Great! Glad it worked! :]

PS : You were right : <br> <br><pre> <br>chgrp -R www-data /home/pixy/www <br>chmod -R g+r /home/pixy/www <br></pre> <br> <br>Is the right thing to do, thaks again :)

Ah, sweet! Glad it works now! :]

No =( <br> <br>I don’t know why, but with this config : <br> <br> <br>It works !! The error seemed to be <br><pre>PassengerAppRoot /home/pixy/www</pre> <br>I removed the line <br> <br>I’m pretty sure I tried without before… <br>But it now works :) <br> <br>Maybe it can help someone one day ! <br> <br>Thank you for you help =)

I believe apache runs as www-data by default so you will have to allow www-data to read your home dir/website’s files. <br> <br><pre>chgrp -R www-data /home/pixy/www</pre> <br><pre>chmod -R g+r /home/pixy/www</pre> <br> <br>Let me know if that fixes it.

With this configuration : <br> <br> <br>I have the error : <br><code> <br>[Tue Sep 10 19:17:04 2013] [error] [client] Directory index forbidden by Options directive: /home/pixy/www/blog/public/ <br></code> <br> <br>“You don’t have permission to access / on this server.” <br> <br>With this one : <br> <br> <br>No error, I just see my directory… <br>You can check here : <br>

Check apache’s error logs for errors: <br> <br><pre>tail /var/log/apache2/error.log</pre> <br>Do you see anything?

And in my rails folder : <br> <br>root@pixy:/var/www/rails# ls -la <br>total 8 <br>drwxr-xr-x 2 root root 4096 Sep 10 07:11 . <br>drwxr-xr-x 3 root root 4096 Sep 10 07:00 … <br>lrwxrwxrwx 1 root root 19 Sep 10 07:11 blog -> /home/pixy/www/blog

root@pixy:/var/www# ls -la <br>total 16 <br>drwxr-xr-x 3 root root 4096 Sep 10 07:00 . <br>drwxr-xr-x 12 root root 4096 Sep 8 19:39 … <br>-rw-r–r-- 1 root root 177 Sep 8 19:39 index.html <br>drwxr-xr-x 2 root root 4096 Sep 10 07:11 rails <br>

First, let’s make sure you’re not having permissions problems. <br> <br>In your <code>/var/www</code> directory, what’s the output of <code>ls -la</code>?