Je développe une application Rails et j’essaie de configurer le serveur Web sur lequel il est déployé. Mon problème est que la page ne se charge pas.
Dans le error.log
d’Apache, il n’y a aucune erreur et dans log/production.log
mon application, seule la ou les lignes de Connecting to database specified by database.yml
apparaissent.
Je n’ai aucun index.html dans le dossier public de l’application et l’application fonctionne correctement dans l’environnement de développement.
J’utilise une instance Amazon avec Ubuntu 12.04 et j’ai installé ruby via RVM. Dans mon httpd.conf j’ai:
LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17 PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby
Apache démarre sans erreurs.
Ci-dessous, il y a mes sites-available/default
:
# other virtualhosts # ServerName my_app.mydomain.com ServerAdmin [email protected] DocumentRoot /home/ubuntu/public_html/my_app/current/public Allow from all Options -MultiViews ErrorLog ${APACHE_LOG_DIR}/error.log
Que dois-je faire maintenant pour que les passagers travaillent?
J’ai décidé de réinstaller Ruby et toutes les autres choses et de passer à nginx. Finalement, je travaille tous (ngnix et apache). C’est ce que j’ai fait si quelqu’un se soucie de:
Installer ruby + rails via RVM
curl -L https://get.rvm.io | bash -s stable --rails
Charger rvm dans toutes les shells ouvertes
source ~/.rvm/scripts/rvm
Installer gem
gem install passenger
Installer apache et module passager
rvmsudo passenger-install-apache2-module
Copiez ces lignes dans /etc/apache2/httpd.conf
LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17 PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby
Installer nginx et passager module
rvmsudo passenger-install-nginx-module
Copiez ces lignes dans /opt/nginx/conf/nginx.conf
passenger_root /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17; passenger_ruby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby;
Configurer un script pour vous permettre de contrôler Nginx
wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh sudo mv init-deb.sh /etc/init.d/nginx sudo chmod +x /etc/init.d/nginx sudo /usr/sbin/update-rc.d -f nginx defaults
Vous pouvez maintenant contrôler Nginx avec ce script
sudo /etc/init.d/nginx stop sudo /etc/init.d/nginx start
Une des autres choses que vous voudrez est Node.js. Cela vous aidera à comstackr des ressources sur les déploiements
sudo apt-add-repository ppa:chris-lea/node.js sudo apt-get -y update sudo apt-get -y install nodejs
J’ai eu le même problème, la réponse était dans le fichier unicorn.log. C’était une erreur de syntaxe dans un contrôleur. Vous devriez regarder dans le fichier journal des passagers