Comment faire pour exécuter un simple script ruby dans n'importe quel serveur web (Apache ou Métis ou toute autre chose)
Il semble très drôle pour moi que quand je recherche quelque chose en rapport ruby, toutes ruby on rails, des résultats ont sauté. Donc personne à l'aide de matières ruby plus?
Cependant, je suis nouveau sur le rubis. Ce matin, j'essaie seulement de l'exécution d'un simple hello world ruby script serveur web, tout d'abord apache 2 et ensuite essayé la mongrel. Mais malheureusement, j'ai échoué. J'ai googlé toutes les façons que je peux, mais le résultat ne montre quant à ruby on rails. Alors, vraiment, est-il possible d'exécuter un script ruby dans n'importe quel serveur web, ou je dois utiliser ror même si je veux faire une application hello world?
- Vous semblez sont à venir pour Ruby, php ou similaire. La différence avec le Rubis n'est pas très grand, nous avons un large éventail de cadres de sortie du code html brut, nous n'avons jamais écrire des choses comme: met "<html>".
- Jetez un oeil à Ruby CGI de la bibliothèque. Il fournit des aides pour l'accès aux paramètres, cookies et autres. Création de scripts CGI, même sans la bibliothèque est simple, une fois que vous comprenez comment le CGI spec fonctionne.
- Vous pouvez poster votre simple "hello world" exemple de script? Il serait utile de savoir ce que vous essayez de faire. Est-il un script qui affiche le code HTML qui doit être affiché dans un navigateur? Ou un script qui peut être exécuté depuis la ligne de commande?
Vous devez vous connecter pour publier un commentaire.
Sinatra est probablement votre meilleur pari pour obtenir un Ruby script qui s'exécute à partir d'un serveur web sans Rails.
Prendre un coup d'oeil ici: http://www.sinatrarb.com
De la Sinatra docs:
Ensuite, il suffit d'exécuter:
Il suffit d'aller à http://0.0.0.0:4567 dans votre navigateur et vous devriez trouver votre "Bonjour le Monde"
...
Pour ajouter à cela, puisque vous aussi vous demander à propos de l'exécution d'Apache ou d'autres serveurs web, vous voudrez peut-être vérifier ces tutoriels sur le déploiement de votre nouveau Sinatra application basée sur Apache ou Nginx:
Apache: http://www.pastbedti.me/2009/11/deploying-a-sinatra-app-with-apache-and-phusion-passenger-a-k-a-mod_rack/ et http://www.giantflyingsaucer.com/blog/?p=1716
Nginx: http://tommy.chheng.com/2009/06/09/deploying-a-sinatra-app-on-nginx-passenger-with-capistrano-and-git/
Note les deux tutoriels fonctionnement Sinatra de voyageurs de via (http://www.modrails.com/ -- ne soyez pas rebutés par le "modrails" nom 🙂 ), que j'ai eu de la chance dans le déploiement d'applications sous Apache et Nginx.
Vous pouvez configurer Apache (par exemple) pour fonctionner .rb fichiers comme les scripts CGI, puis ajouter une ligne shebang (
#!/path/to/your/ruby
ou peut-être#!/usr/bin/env ruby
) au début du script. Il n'est pas optimale, même si, comme il allait lancer une nouvelle interprète pour chaque demande.Le plus couramment utilisé façon de l'exécution d'un rubis site est passager: http://www.modrails.com/
Il n'est pas vraiment difficile à installer et vous l'utilisez, ici est-il de la doc d'apache: http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_ruby_on_rails_application
Votre demande doit être valide application de rack, ici, c'est un minimum bonjour tout le monde (disons /app votre demande est la racine du dossier):
/app/config.ru
/app/app.rb
Enregistrer les fichiers ci-dessus et de créer un sous-dossier /app/public (requis par passager pour détecter un ruby/rails/sinatra application) et à l'utilisation /application/public comme DocumentRoot dans votre configuration d'apache.
Cela peut sembler effrayant, mais c'est pour un déploiement en production, dans le développement de votre vraiment ne voulez pas salir avec un serveur réel.
Tout ce que vous devez exécuter le config.ru le fichier que j'ai donné ci-dessus est:
Ou si vous voulez être plus proche de votre système de production:
qui va vous installer un serveur nginx avec des passagers et de l'exécution de votre application.
Dans la plupart des cas, vous ne serez jamais utiliser rack directement mais au lieu d'utiliser ruby on rails, sinatra ou d'une autre structure pour générer le code html pour vous (ils utilisent tous rack ci-dessous maintenant de fournir une api commune avec les serveurs web).
Ruby 1.9.2+ simple commande.
de cet article http://til.justincampbell.me/start-an-http-server-with-ruby-run/
autres article https://gist.github.com/willurd/5720255
J'ai entendu mod_ruby est bon. Contrairement à,
#!/path/to/your/ruby
, mod_ruby de ne pas frayer un nouvel interpréteur ruby.https://github.com/shugo/mod_ruby
L'exécuter à partir de votre application de racine.