Несколько приложений Ruby на одном порту, помощь RackBaseURI - PullRequest
1 голос
/ 12 апреля 2011

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

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

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

/ Users / Dan / WebApps / Test1 / Users / Dan / WebApps / Test2

У каждого из них есть файл "config.ru", общий /папка и папка tmp / с именем 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>

Я запускаю apache, а затем помещаю это в свой браузер: http://localhost/test1. Я получаю:

Запрещено

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 13 апреля 2011

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

Тогда эти URL работают так, как и ожидалось в браузере.

http://localhost/

http://localhost/test1link

http://localhost/test2link

0 голосов
/ 12 апреля 2011

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

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

Однако, как упоминал Крис Ползер, вы также должны проверить, что ваш пользователь 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

...