Vários aplicativos Rails no mesmo subdomínio?

2

Eu recentemente decidi experimentar o Rails. Ao trabalhar com PHP, eu simplesmente tinha todos os meus projetos PHP no mesmo diretório. Por exemplo, posso ter http://ubuntu/app1 , http://ubuntu/app2 , etc.

Eu criei um subdomínio para o Rails ( http://ruby.ubuntu ), instalei o Rails e o Passenger e tudo está funcionando. No entanto, posso estar errado, mas parece que só posso ter um aplicativo Rails por subdomínio?

Meu VirtualHost é o seguinte:

<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>

Todo meu PHP e misc. os arquivos são armazenados em /var/www/main . Eu quero ser capaz de armazenar todos os meus aplicativos Rails em /var/www/ruby . Eu tentei mudar o DocumentRoot para /var/www/ruby , mas não acho que seja tão simples assim. Quando eu navego até a página Bem-vindo a bordo de um aplicativo Rails e clico em "Sobre o ambiente do meu aplicativo", recebo uma página 404, mas quando o DocumentRoot está definido para o diretório público, recebo o resultado esperado.

Eu não quero ter que criar um novo subdomínio toda vez que eu criar um novo projeto. Existe alguma maneira que eu possa fazer para que eu possa armazenar todos os meus aplicativos em /var/www/ruby , e navegando para http://ruby.ubuntu vai me deixar acessar todos os meus aplicativos Rails lá? Dessa forma, se eu quiser criar um novo aplicativo, tudo o que tenho a fazer é rails new app , não é necessário ter o .htaccess ou a configuração do VirtualHost do Apache.

    
por Derek Maciel 07.07.2012 / 18:40

3 respostas

5

você pode usar quantos aplicativos de rails desejar.

Se estiver usando o apache httpd e o passageiro, veja as etapas:

Basta vincular a pasta pública de cada um dos seus aplicativos rails ao DocumentRoot do apache como uma subpasta. Em seguida, adicione uma diretiva RailsBaseURI na configuração do apache que informa ao passageiro que a pasta fornecida é um aplicativo rails.

Digamos que você tenha dois aplicativos rails rapp1 e rapp2. Vamos dizer que o seu DocumentRoot apache é / var / www / html

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

agora abra seu arquivo de configuração do host virtual do apache e adicione as duas linhas a seguir

  RailsBaseURI /rapp1
  RailsBaseURI /rapp2

reinicie seu servidor apache e quando visitar http://servername/rapp1 , seu aplicativo rails será exibido

    
por 23.07.2012 / 19:51
0

Eu posso estar enganado, mas acredito que o que você está tentando alcançar é chamado Sub-URI.

Use o subdomínio ruby.ubuntu e, em seguida, cada aplicativo é executado em subdiretórios / subdiretórios diferentes.

Algumas leituras adicionais: link

    
por 07.07.2012 / 22:34
0

Parece que você está tentando usar os SubURIs. O Passenger pode suportá-los, mas você precisa ajustar um pouco sua configuração do Host Virtual.

Os Passenger Docs para o Apache explicam como fazer isso, junto com um exemplo para te dar uma mão.

    
por 07.07.2012 / 22:50