我正在尝试从同一个端口使用两个Ruby应用程序。我根本不了解服务器技术,所以请原谅我的无知。我试图遵循这个文档:
http://www.modrails.com/documentation/Users%20guide%20Apache.html
4.1 - 4.3节,但我一直在搞乱。我试着简化一下,所以这是我的情况。我这里有两个简单的机架式应用程序:
/用户/旦/ web应用/ TEST1 /用户/旦/ web应用/ TEST2
按照指示,它们每个都有“config.ru”文件,公共/文件夹和带有“restart.txt”的tmp /文件夹。他们都是自己工作的。
我的httpd.conf文件中有以下内容:
<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>
我启动apache,然后将其放入浏览器中:http://localhost/test1。我明白了:
禁止
您无权访问此服务器上的/ test1。
我并不感到惊讶它不起作用,因为我应该设置一个符号链接,但我不知道如何将它应用到我的设置。以下是doc中的示例:
ln -s / webapps / rackapp / public / websites / phusion / rack
您能告诉我如何设置符号链接,如果您发现其他任何错误,请告诉我?请给出“傻瓜”答案,这些东西让我难以置信。谢谢!
答案 0 :(得分:0)
要创建符号链接,请尝试以下操作:
ln-s /Users/dan/webapps/test1 /Users/dan/webapps/test1/public
ln-s /Users/dan/webapps/test2 /Users/dan/webapps/test2/public
但是,正如chris polzer所提到的那样,您还应该检查您的apache用户是否可以从这些目录中读取。
如果您不知道如何操作,请发布这些命令的输出:
ls -l /Users/dan/webapps/test1
ls -l /Users/dan/webapps/test2.
ps -aux | grep http
ps -aux | grep apache
您可能还需要检查所有父目录的权限。即/ Users,/ Users / dan和/ Users / dan / webapps。请参阅:http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_to_a_virtual_host_8217_s_root_2
答案 1 :(得分:0)
phylae,我想你可能在符号链接中反转了路径。为了使其正常工作,为了清楚起见,我更改了链接名称:
<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>
然后,符号链接:
ln -s / Users / dan / webapps / test1 / public / Users / dan / webapps / test1link
ln -s / Users / dan / webapps / test2 / public / Users / dan / webapps / test2link
然后这些网址在浏览器中按预期工作。