Несколько приложений Rails на одном поддомене?

Недавно я решил попробовать Rails. При работе с PHP все мои проекты PHP просто находились в одном каталоге. Например, я могу иметь http://ubuntu/app1, http://ubuntu/app2, так далее.

Я создал поддомен для Rails (http://ruby.ubuntu), установлены Rails и Passenger и все работает. Тем не менее, я могу ошибаться, но похоже, что я могу иметь только одно приложение Rails на поддомен?

Мой VirtualHost выглядит следующим образом:

<VirtualHost *:80>
    ServerName ruby.ubuntu
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/ruby/blog/public

    <Directory /var/www/ruby/blog/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        RailsEnv development
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Весь мой PHP и разное. файлы хранятся в /var/www/main, Я хочу иметь возможность хранить все мои приложения Rails в /var/www/ruby, Я попытался изменить DocumentRoot на /var/www/ruby, но я не думаю, что это так просто. Когда я захожу на страницу приветствия приложения Rails и нажимаю "О среде моего приложения", я получаю страницу 404, но когда DocumentRoot установлен в публичный каталог, я получаю ожидаемый результат.

Я не хочу создавать новый поддомен каждый раз, когда создаю новый проект. Есть ли способ, которым я могу сделать это, чтобы я мог хранить все свои приложения в /var/www/rubyи просматривая http://ruby.ubuntu позволит мне получить доступ ко всем моим приложениям на Rails? Таким образом, если я хочу создать новое приложение, все, что мне нужно сделать, это rails new app, не требуется настройка Apache .htaccess или VirtualHost.

3 ответа

Вы можете обслуживать столько рельсов, сколько пожелаете.

Если вы используете apache httpd и passenger, выполните следующие действия:

Просто вставьте символическую публичную папку каждого из ваших приложений rails в apache DocumentRoot как подпапку. Затем добавьте директиву RailsBaseURI в конфигурацию apache, которая сообщает пассажиру, что данная папка является приложением rails.

Допустим, у вас есть два приложения rails rapp1 и rapp2. Допустим, ваш apache DocumentRoot это / var / www / html

  ln -s rapp1 /var/www/html/rapp1
  ln -s rapp2 /var/www/html/rapp2

Теперь откройте файл конфигурации виртуального хоста Apache и добавьте следующие две строки

  RailsBaseURI /rapp1
  RailsBaseURI /rapp2

перезагрузите сервер Apache и при посещении http://servername/rapp1, ваше приложение рельсы обслуживается

Я могу ошибаться, но я верю, что то, что вы пытаетесь достичь, называется Sub-URI.

Используйте поддомен ruby.ubuntu, и тогда каждое приложение будет работать в разных подкаталогах.

Некоторое дальнейшее чтение: http://collab.stat.ucla.edu/users/jose/weblog/9e335/

Похоже, вы пытаетесь использовать SubURI. Пассажир может их поддерживать, но вам нужно немного настроить конфигурацию виртуального хоста.

Документы для пассажиров для Apache объясняют, как это сделать, а также пример, чтобы помочь вам.

Другие вопросы по тегам