2011-04-11 3 views
1

Я пытаюсь заставить два приложения Ruby работать из того же порта. Я вообще не знаю серверных технологий, так что простите мое невежество. Я пытался следовать этому документу:Несколько приложений Ruby на одном порту, помощь RackBaseURI

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

разделы 4.1 - 4.3, но я продолжаю баловаться что-нибудь. Я попытался немного упростить, вот моя ситуация. У меня есть два простых приложения rackup здесь:

/Пользователи/даном/WebApps/test1 /Users/дан/WebApps/test2

каждого из них есть файл "config.ru", общественность/папки и tmp/folder с «restart.txt», как указано. Они оба работают самостоятельно.

У меня есть следующие в моем файле 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> 

я начинаю апача, а затем поместить это в моем браузере: http://localhost/test1. Я получаю:

Запретный

У вас нет разрешения на доступ/test1 на этом сервере.

Я не удивлен, что он не работает, потому что я должен создать символическую ссылку, но я не знаю, как применить ее к моей настройке. Вот пример из дока:

пер -s/WebApps/rackapp/государственный/сайты/Phusion/стойку

Может ли вы сказать мне, как установить символические ссылки, и дайте мне знать, если вы видите что-нибудь иначе не так? Пожалуйста, дайте ответ «за чайники», этот материал пугает мой разум. Благодаря!

+0

Является ли ваш сервер Apache умеет читать из этих каталогов? –

ответ

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> 

, а затем, символические ссылки:

ЛУ -s/Пользователи/даН/WebApps/test1/государственные/Users/даН/WebApps/test1link

пер -s/Пользователи/дан/WebApps/test2/общественности/Пользователи/дан/WebApps/test2link

Затем эти URLs работать, как ожидалось в браузере.

http://localhost/

http://localhost/test1link

http://localhost/test2link

0

Чтобы создать символические ссылки, попробуйте следующее:

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

Однако, как уже упоминалось Крисом Polzer, вы должны также проверить, что ваш апач пользователь может читать из этих каталогов.

Если вы не знаете, как это сделать, а затем разместить вывод этих команд:

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

Смежные вопросы