开发者

Multiple Ruby apps on one port, RackBaseURI help

I'm trying to get two Ruby apps to work from the same port. I don't know server technology at all, so forgive my ignorance. I've tried to follow this doc:

http://www.modrails.com/documentation/Users%20guide%20Apache.html

sections 4.1 - 4.3, but I keep messing something up. I've tried to simplify a little, so here is my situation. I have two simple rackup apps here:

/Users/dan/webapps/test1 /Users/dan/webapps/test2

They each have the "config.ru" file, the public/ folder, and the tmp/ folder with "restart.txt", as directed. They both work on their own.

I have the following in my httpd.conf file:

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /Users/dan/webapps
  <Directory /Users/dan/webapps>
      Allow from all
  </Directory>
  RackBaseURI /test1
  <Directory /Users/dan/webapps/test1>
    Options -MultiViews
  </Directory>
  RackBaseURI /test2
  <Directory /Users/dan/webapps/test2>
    Options -MultiViews
  </Directory>
</VirtualHost>

I start apache, and then put this in my browser: http://localhost/test1. I get:

Forbidden

You don't have permission to access /test1 on this server.

I'm not surprised it doesn't work, because I am supposed to set up a symlink but I don't know how to apply that to my setup. Here is the example from 开发者_如何学Gothe doc:

ln -s /webapps/rackapp/public /websites/phusion/rack

Can you tell me how to set up the symlinks, and let me know if you see anything else wrong? Please give the "for dummies" answer, this stuff boggles my mind. Thanks!


To create the symlinks, try this:

ln-s /Users/dan/webapps/test1 /Users/dan/webapps/test1/public
ln-s /Users/dan/webapps/test2 /Users/dan/webapps/test2/public

However, as chris polzer mentioned, you should also check that your apache user can read from those directories.

If you don't know how to do that, then post the output of these commands:

ls -l /Users/dan/webapps/test1
ls -l /Users/dan/webapps/test2.
ps -aux | grep http
ps -aux | grep apache

You may also need to check the permissions of all parent directories. I.e. /Users, /Users/dan, and /Users/dan/webapps. See: http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_to_a_virtual_host_8217_s_root_2


phylae, I think you may have the paths reversed in the symbolic link. To get it working, I changed the link names for clarity:

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /Users/dan/webapps
  <Directory /Users/dan/webapps>
      Allow from all
  </Directory>
  RackBaseURI /test1link
  <Directory /Users/dan/webapps/test1>
    Options -MultiViews
  </Directory>
  RackBaseURI /test2link
  <Directory /Users/dan/webapps/test2>
    Options -MultiViews
  </Directory>
</VirtualHost>

and then, the symbolic links:

ln -s /Users/dan/webapps/test1/public /Users/dan/webapps/test1link

ln -s /Users/dan/webapps/test2/public /Users/dan/webapps/test2link

Then these urls work as expected in a browser.

http://localhost/

http://localhost/test1link

http://localhost/test2link

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜