Configuration de l'application Rails sur Apache avec passager - Rails ne semble pas charger

Je suis en train de mettre en place des Rails sur une Ubuntu exemple en suivant la documentation comme les https://help.ubuntu.com/community/RubyOnRails. Je suis en train de mettre en place l'application sur les Rails de la page d'accueil ici: http://guides.rubyonrails.org/getting_started.html.

Ce que j'ai fait jusqu'à présent:

  • Installation de Ruby/RubyGems/Rails par RVM et GEM (installé Ruby 1.9.2 et les Rails 3.0.7)
  • Installation de mysql et mysql2 module (dernier qui n'a pas fonctionné)
  • Création d'application rails (blog app tutoriel est instructeur)
  • Sym liaison de /home/moi/www/blog/public/à partir de /var/www/blog/
  • Création de la DB via rake
  • Installation de passagers module pour les Rails d'exécution dans Apache
  • L'exécution de passenger-install-apache2-module de configurer Apache
  • Suppression de public.html fichier public/rails de dossier app, de sorte que mon contrôleur/vue d'incendie
  • Configuration de sites-les fichiers disponibles pour les hôtes virtuels
  • Configuration de Rails de routage

Je crois que c'est les deux dernières étapes du déclenchement de moi, en partie en raison du manque de familiarité avec Apache et les Rails (je suis nouveau).

Dans mon fichier hôte virtuel je suis en train de pointer vers le blog public dir /var/www/blog. Pour ma Rails de route que j'ai root :to => "home#index" comme indiqué.

Quand j'ai accédez à l'url http://je devrais normalement voir mon "Bonjour, Rails de!" page par section 4.3 du guide de mise en route, cependant je ne vois que l'inscription à l'annuaire à partir de Apache. Les pages statiques de travail mais pas de Rails de traitement.

À ce point, je ne sais pas si le passager module est même en faisant n'importe quoi ou où regarder pour toute preuve de ce qui se passe. J'ai essayé différentes choses comme de l'exécution de l'application Rails off un autre hôte virtuel appelé "blog" à http:///blog et le routage de travail (pages statiques et tout et tout), mais pas de Rails au-dessus.

Mise à jour: après avoir joué un peu plus, maintenant, je reçois un nouveau message d'erreur (404):

Pas Trouvé

The requested URL /expédition.cgi a été
pas trouvée sur ce serveur.

Depuis, j'ai déterminé que ce cgi 404 a été causé par une règle de réécriture que j'avais ajouté .htaccess de l'orientation de la help.ubuntu.com page je l'ai souligné ci-dessus. Regarde comme il n'était pas nécessaire ou appliqué à une ancienne version de Rails. Les incohérences dans les instructions lors de la recherche de l'aide en ligne est déroutant! Supprimer le fichier me laisse avec le problème précédent.

Voici l'entrée dans le log d'Apache qui, je crois, est en corrélation avec la première erreur. Bien que je ne suis plus l'obtention de cette erreur, il semble, peut être liée à quelque chose d'autre, que j'avais essayé avant...

[Fri May 27 22:49:41 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9 with Suhosin-Patch Phusion_Passenger/3.0.7 configured -- resuming normal operations
[Fri May 27 22:51:18 2011] [error] [client 192.168.1.141] File does not exist: /var/www/blog/rails, referer: http://192.168.1.138/blog/

Voici l'entrée la plus récente avec la 404 de la cgi chose:

[Sat May 28 08:01:18 2011] [error] [client 192.168.1.141] File does not exist: /var/www/blog/dispatch.cgi

Que pouvais-je être absent? Merci!


Des détails supplémentaires sur demande. Apache sites de fichier:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/blog/
    RailsEnv development

        # <Directory />
        #       Options FollowSymLinks
        #       AllowOverride None
        # </Directory>

        <Directory "/var/www/blog/">
        Options Indexes FollowSymLinks -MultiViews +ExecCGI
                AllowOverride All
                Order allow,deny
                allow from all
        # AddHandler cgi-script .cgi
        </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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
    AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Une autre mise à jour: j'ai été en mesure d'obtenir ce travail, enfin, à l'aide d'un haut niveau de la racine de votre serveur (/var/www) et de baser mon application Rails off que l'utilisation de RailsBaseURI. Il correspond à la "pour le Déploiement sur un sous-URI" section de la Phusion Passenger instructions. Il est utilisé comme http:///blog ce qui n'est pas vraiment ce que je voulais faire, mais c'est un peu inutile comme je suis à l'aide de ce juste à apprendre Rails dans un monde virtuel. J'ai besoin d'aller et de faire en sorte qu'il fonctionne comme un haut-niveau de l'application de nouveau quelque temps plus tard. Voici mon actuel (final) VirtualHost fichier de référence:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        RailsEnv development

        <Directory /var/www/>
          Options FollowSymLinks
          AllowOverride None
        </Directory>

    RailsBaseURI /blog
        <Directory /var/www/blog/>
                Options Indexes FollowSymLinks -MultiViews +ExecCGI
                AllowOverride All
                Order allow,deny
                allow from all
                # AddHandler cgi-script .cgi
        </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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

source d'informationauteur Episcopus