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
Vous devez vous connecter pour publier un commentaire.
Lire l'intégralité de docs ici
Double vérifier que le passager est le chargement de votre application en tapant
sudo passager-statut
Cela va vous montrer une erreur si le passager n'est pas chargée ou le ci-dessous si elle est. Remarque la partie où il vous montre l'application ou les applications qu'il a chargé et que l'actuel niveau de disponibilité est:
Assurez-vous de supprimer le fichier
index.html
de lapublic
répertoire de votre application.