Назад | Перейти на главную страницу

Несколько приложений 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, но я не думаю, что это так просто. Когда я перехожу на страницу Welcome Aboard приложения Rails и нажимаю «О среде моего приложения», я получаю страницу 404, но когда DocumentRoot установлен в общедоступный каталог, я получаю ожидаемый результат.

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

вы можете обслуживать любое количество рельсовых приложений.

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

Просто сделайте символическую ссылку на общую папку каждого вашего приложения rails в Apache DocumentRoot в качестве подпапки. Затем добавьте в конфигурацию apache директиву RailsBaseURI, которая сообщает пассажиру, что данная папка является приложением 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, ваше приложение rails обслуживается

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

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

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

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

Дальнейшее чтение: http://collab.stat.ucla.edu/users/jose/weblog/9e335/