Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
rubyonrails [Le 30/11/2010, 16:30]
82.224.114.130
rubyonrails [Le 31/08/2022, 23:32] (Version actuelle)
moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Hardy Maverick ​programmation BROUILLON}}+{{tag>Trusty Xenial ​programmation BROUILLON}}
  
 ---- ----
  
-<​note>​Attention **BROUILLON** ! Certaines parties de cette page sont obsolètes, pour une installation sur Karmic, voir directement la section //​Installation complète ​(Karmic Koala)//.+====== Rails (ou Ruby on Rails dit aussi RoR======
  
-Pour l'installation de Ruby 1.9.2 et de Ruby On Rails 3.0, voir directement la section //​Installation complète (Maverick Meerkat)//</​note>​+Rails est un cadriciel libre orienté dans le développement d'applications web, et développé lui-même dans le langage [[:ruby|Ruby]]Les versions concernées par cette documentation sont celles de Ubuntu 14.04 Rails 3.2et de Ubuntu 16.04 Rails 4.2. 
 +===== Pré-requis =====
  
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
  
-====== Ruby On Rails ======+===== Installation ​=====
  
-Rails est un framework de développement ​d'applications web basé sur le concept ​[[http://​fr.wikipedia.org/​wiki/​Mod%C3%A8le-Vue-Contr%C3%B4leur|Modèle-Vue-Controleur]] (MVC). +Pour installer ce logiciel, il suffit ​d'[[:tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​rails|Rails]]**, qui installera ​en même temps toutes ​les dépendances ​necessaires dont le langage [[:​ruby|Ruby]] ​et les fonctionnalités SQLite3.
-  +
-  ​* **Ruby** - Ruby 1.8.5 est la version recommandée pour l'​utilisation de Rails. Ruby 1.8.4 et 1.8.2 conviennent aussi, mais pas la version 1.8.3. +
-  ​* **RubyGems** - RubyGems est le gestionnaire standard de paquets Ruby.  Similaire à apt-getmais est utilisé pour installer les librairies et applications ​en Ruby. Les Gems sont en quelque sorte comme les paquets .deb (les gems sont la meilleure façon d'​installer Rails et ses dépendances+
-  * **Rails** - Avec **RubyGems** installé, vous pouvez installer Rails et ses dépendances. +
-  * **Rails 3.0** - La dernière version de Rails n'est pas disponible dans les dépots. Vous pouvez cependant l'​installer via RVM.+
  
 +===== Configuration =====
  
-===== Installation complète ​de Ruby 1.9.2 et Rails 3.0 via RVM (Maverick Meerkat) ===== +La configuration ​de Rails s'​effectue automatiquement pour chaque application créée dans son dossier , voir ci-après.
-<​note>​Ruby On Rails 3.0 ne supporte pas Ruby 1.9.1</​note>​+
  
-Si vous souhaitez installer Ruby 1.9.2 et Rails 3.0vous ne pouvez pas le faire via les dépots officiels. Il va donc vous falloir les installer à la main. +Pour modifier le comportement de Rails lui-mêmeutilisez ​les options sur la ligne de commande : 
-==== Ruby enVironment (Version) Manager (RVM) ==== +<​code>​man rails </​code>​
-RVM vous permet de gérer manuellement les versions de Ruby. +
  
-=== Pré-requis === +que vous pouvez aussi obtenir avec juste la commande ​__rails__ ou 
-Pour l'​installer,​ il vous faudra d'​abord effectuer ​la commande ​suivante pour installer les dépendances ​+<​code ​bash> 
-<​code>​sudo apt-get install curl git-core build-essential zlib1g-dev libssl-dev libreadline6-dev</​code>​+rails new -
 +Usage: 
 +  rails new APP_PATH [options]
  
-=== Installation === +Options: 
-Ensuitetapez la commande suivantequi récupère et installe RVM : +  -r, [--ruby=PATH]                                      # Path to the Ruby binary of your choice 
-<​code>​sudo bash < <( curl -L http://bit.ly/rvm-install-system-wide )</​code>​+                                                         # Default: /​usr/​bin/​ruby 
 +  -m, [--template=TEMPLATE] ​                             # Path to some application template (can be a filesystem path or URL) 
 +      ​[--skip-gemfile][--no-skip-gemfile] ​             # Don't create a Gemfile 
 +  -B[--skip-bundle],​ [--no-skip-bundle] ​               # Don't run bundle install 
 +  -G, [--skip-git],​ [--no-skip-git] ​                     # Skip .gitignore file 
 +      [--skip-keeps],​ [--no-skip-keeps] ​                 # Skip source control .keep files 
 +  -O, [--skip-active-record],​ [--no-skip-active-record] ​ # Skip Active Record files 
 +  -S, [--skip-sprockets],​ [--no-skip-sprockets] ​         # Skip Sprockets files 
 +      [--skip-spring],​ [--no-skip-spring] ​               # Don't install Spring application preloader 
 +  -d, [--database=DATABASE] ​                             # Preconfigure for selected database (optionsmysql/oracle/postgresql/sqlite3/​frontbase/​ibm_db/​sqlserver/​jdbcmysql/​jdbcsqlite3/​jdbcpostgresql/​jdbc) 
 +                                                         # Default: sqlite3 
 +  ​-j, [--javascript=JAVASCRIPT] ​                         # Preconfigure for selected JavaScript library 
 +                                                         # Default: jquery 
 +  -J, [--skip-javascript],​ [--no-skip-javascript] ​       # Skip JavaScript files 
 +      [--dev], [--no-dev] ​                               # Setup the application with Gemfile pointing to your Rails checkout 
 +      [--edge], [--no-edge] ​                             # Setup the application with Gemfile pointing to Rails repository 
 +      [--skip-turbolinks],​ [--no-skip-turbolinks] ​       # Skip turbolinks gem 
 +  -T, [--skip-test-unit],​ [--no-skip-test-unit] ​         # Skip Test::Unit files 
 +      [--rc=RC] ​                                         # Path to file containing extra configuration options for rails command 
 +      [--no-rc], [--no-no-rc] ​                           # Skip loading of extra configuration options from .railsrc file
  
-<​note>​Pour plus d'​informations sur cette commanderendez-vous sur la page officielle de RVM (en anglais) : [[http://​rvm.beginrescueend.com/​deployment/​system-wide/]]. Vous pouvez ainsi vous rendre compte qu'il existe d'​autres méthodes pour installer RVMmais que celles-ci nécessitent des modifications plus complexes de votre système</​note>​+Runtime options: 
 +  -f[--force] ​                   # Overwrite files that already exist 
 +  -p, [--pretend], ​[--no-pretend # Run but do not make any changes 
 +  -q, [--quiet], [--no-quiet] ​     # Suppress status output 
 +  -s, [--skip], [--no-skip] ​       # Skip files that already exist
  
-=== Finalisation et test === +Rails options: 
-Une fois l'​installation terminéeil faut ajouter votre compte dans le groupe "​rvm"​ : +  -h[--help], [--no-help] ​       # Show this help message and quit 
-<​code>​sudo adduser <​identifiant>​ rvm</​code>​ +  -v, [--version],​ [--no-version] ​ # Show Rails version number and quit
-où <​identifiant>​ est le nom de votre compte.+
  
-Pour vérifier l'​installation,​ tapez +Description
-<​code>​rvm info</​code>​ +    The 'rails new' command creates a new Rails application with a default 
-Vous devez voir apparaître quelque chose semblable à ça :  +    ​directory structure and configuration at the path you specify.
-<​code>​root@Quantum-Kubuntu:/​home/​albin#​ rvm info+
  
-system:+    You can specify extra command-line arguments to be used every time 
 +    'rails new' runs in the .railsrc configuration file in your home directory.
  
-  system: +    Note that the arguments specified in the .railsrc file don't affect the 
-    uname: ​      "​Linux Quantum-Kubuntu 2.6.35-22-generic #34-Ubuntu SMP Sun Oct 10 09:26:05 UTC 2010 x86_64 GNU/​Linux"​ +    ​defaults values shown above in this help message.
-    ​bash:        "/​bin/​bash => GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)"​ +
-    zsh:         "​ => not installed"​+
  
-  rvm+Example
-    ​version: ​     "rvm 1.0.14 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"+    ​rails new ~/Code/Ruby/weblog
  
-  homes: +    This generates a skeletal Rails installation in ~/Code/Ruby/weblog. 
-    gem:          "not set" +    ​See the README in the newly created application to get going.
-    ruby:         "​not set" +
- +
-  binaries: +
-    ruby:         ""​ +
-    irb:          ""​ +
-    gem:          "/usr/bin/gem" +
-    rake:         ""​ +
- +
-  environment:​ +
-    PATH:         "/​usr/​local/​sbin:/​usr/​local/​bin:/​usr/​sbin:/​usr/​bin:/​sbin:/​bin:/​usr/​games:/​usr/​local/​rvm/​bin"​ +
-    GEM_HOME: ​    ""​ +
-    GEM_PATH: ​    ""​ +
-    BUNDLE_PATH: ​ ""​ +
-    MY_RUBY_HOME:​ ""​ +
-    IRBRC: ​       ""​ +
-    RUBYOPT: ​     ""​ +
-    ​gemset: ​      ""​+
 </​code>​ </​code>​
 +===== Utilisation =====
  
-==== Installation de Ruby 1.9.2 ====+==== Créez votre première application Rails (Hello, Rails !) ====
  
-=== Installation === +  * Générez ​le squelette de l'application : cette commande créera ​un dossier nommé __weblog__ ​dans votre dossier personnelet auto-configurera ​toutes les fonctionnalités nécessaires (base sqlite3mini serveur web). 
-Tapez la commande suivante : +<​code ​bash
-<​code>​sudo rvm install 1.9.2</​code>​ +rails new $HOME/weblog 
- +      create ​  
-Une fois le téléchargement fini, l'installation débute toute seule et peut durer un certain temps, soyez donc patient ! +      create ​ README.rdoc
- +
-=== Version par défaut === +
-Il vous faut indiquer la version de Ruby utilisée par défaut : +
-<​code>​sudo rvm --default ruby-1.9.2</​code>​ +
- +
-<note important>​La partie qui suit est très importante !</​note>​ +
-=== Rendre Ruby accessible ​dans le shell === +
-Avec votre éditeur de texte préférééditez le fichier situé ///​home/<​user>/​.bashrc//​ puis faites les actions suivantes : +
-  - Commentez la ligne : <​code>​[ -z "​$PS1"​ ] && return</​code>​ en mettant un # devant +
-  - Ajoutez à la place : <​code>​if [[ -n "​$PS1"​ ]]; then</​code>​ +
-  ​Indentez ​toutes les lignes suivantes d'un "​cran"​ de plus +
-  - Ajoutez une nouvelle ligne et mettez "​fi"​ +
-  - Ajoutez une nouvelle ligne et mettez <​code>​[[ -s "/​usr/​local/​lib/​rvm"​ ]] && . "/​usr/​local/​lib/​rvm" ​ # This loads RVM into a shell session.</​code>​ +
- +
-Enregistrez le fichierfermer les éventuels terminaux ouverts et ouvrez-en un nouveau. Pour tester si la modification a fonctionné,​ tapez  +
-<​code>​ruby -v</​code>​ +
- +
-Il doit vous afficher quelque chose de semblable à : +
-<​code>​ruby 1.9.2p0 (2010-08-18 revision 29036[x86_64-linux]</​code>​ +
- +
-<​note>​Vous devrez effectuer la manipulation d'​ajout dans le groupe //rvm// ainsi que de modification du fichier //.bashrc// pour chaque utilisateur devant avoir accès à rvm et ruby</​note>​ +
- +
-==== Installation de Rails 3.0 ==== +
- +
-=== Installation === +
-Installez Rails 3.0 : +
-<code>sudo rvm gem install rails</​code+
- +
-Le système va se charger d'​installer Rails ainsi que ses dépendances. Votre terminal peut ne pas afficher d'​information durant un laps de temps, ne vous inquiétez pas et soyez une fois de plus patient. +
- +
-<​note>​(Optionnel) Vous pouvez en profiter pour installer le gem //mysql// (remplacez simplement "​rails"​ par "​mysql"​)</​note>​ +
- +
-=== Test === +
-Vous pouvez maintenant accéder à Rails. +
-Pour tester si tout s'est bien passé, tapez la ligne suivante dans un terminal. Elle aura pour effet de créer un nouveau projet Rails au chemin indiqué. +
- +
-<​code>​rails new /chemin/​du/​projet/​nomDuProjet -d mysql</​code>​ +
- +
-<​note>//​-d mysql// signifie que je vais utiliser une connexion à MySQL. Cette option est totalement optionnelle.</​note>​ +
- +
-Vous devez avoir une liste de fichiers créer qui doit s'​afficher,​ semblable à celle-ci :  +
- +
-<​code>​ +
-create ​  +
-      create ​ README+
       create ​ Rakefile       create ​ Rakefile
       create ​ config.ru       create ​ config.ru
Ligne 133: Ligne 91:
       create ​ Gemfile       create ​ Gemfile
       create ​ app       create ​ app
-      create ​ app/helpers/application_helper.rb+      create ​ app/assets/javascripts/​application.js 
 +      create ​ app/​assets/​stylesheets/​application.css
       create ​ app/​controllers/​application_controller.rb       create ​ app/​controllers/​application_controller.rb
 +      create ​ app/​helpers/​application_helper.rb
       create ​ app/​views/​layouts/​application.html.erb       create ​ app/​views/​layouts/​application.html.erb
-...+      create ​ app/​assets/​images/​.keep 
 +      create ​ app/​mailers/​.keep 
 +      create ​ app/models/.keep 
 +      create ​ app/​controllers/​concerns/​.keep 
 +      create ​ app/​models/​concerns/​.keep 
 +      create ​ bin 
 +      create ​ bin/​bundle 
 +      create ​ bin/rails 
 +      create ​ bin/rake 
 +      create ​ bin/setup 
 +      create ​ config 
 +      create ​ config/​routes.rb 
 +      create ​ config/​application.rb 
 +      create ​ config/​environment.rb 
 +      create ​ config/​secrets.yml 
 +      create ​ config/​environments 
 +      create ​ config/​environments/​development.rb 
 +      create ​ config/​environments/​production.rb 
 +      create ​ config/​environments/​test.rb 
 +      create ​ config/​initializers 
 +      create ​ config/​initializers/​assets.rb 
 +      create ​ config/​initializers/​backtrace_silencers.rb 
 +      create ​ config/​initializers/​cookies_serializer.rb 
 +      create ​ config/​initializers/​filter_parameter_logging.rb 
 +      create ​ config/​initializers/​inflections.rb 
 +      create ​ config/​initializers/​mime_types.rb 
 +      create ​ config/​initializers/​session_store.rb 
 +      create ​ config/​initializers/​wrap_parameters.rb 
 +      create ​ config/​locales 
 +      create ​ config/​locales/​en.yml 
 +      create ​ config/​boot.rb 
 +      create ​ config/​database.yml 
 +      create ​ db 
 +      create ​ db/​seeds.rb 
 +      create ​ lib 
 +      create ​ lib/tasks 
 +      create ​ lib/​tasks/​.keep 
 +      create ​ lib/​assets 
 +      create ​ lib/​assets/​.keep 
 +      create ​ log 
 +      create ​ log/.keep 
 +      create ​ public 
 +      create ​ public/​404.html 
 +      create ​ public/​422.html 
 +      create ​ public/​500.html 
 +      create ​ public/​favicon.ico 
 +      create ​ public/​robots.txt 
 +      create ​ test/​fixtures 
 +      create ​ test/​fixtures/​.keep 
 +      create ​ test/​controllers 
 +      create ​ test/​controllers/​.keep 
 +      create ​ test/​mailers 
 +      create ​ test/​mailers/​.keep 
 +      create ​ test/​models 
 +      create ​ test/​models/​.keep 
 +      create ​ test/​helpers 
 +      create ​ test/​helpers/​.keep 
 +      create ​ test/​integration 
 +      create ​ test/​integration/​.keep 
 +      create ​ test/​test_helper.rb 
 +      create ​ tmp/cache 
 +      create ​ tmp/​cache/​assets 
 +      create ​ vendor/​assets/​javascripts 
 +      create ​ vendor/​assets/​javascripts/​.keep 
 +      create ​ vendor/​assets/​stylesheets 
 +      create ​ vendor/​assets/​stylesheets/​.keep 
 +         ​run ​ bundle install --local 
 +Resolving dependencies... 
 +Using rake 10.5.0 
 +Using i18n 0.7.0 
 +Using json 1.8.3 
 +Using minitest 5.8.4 
 +Using thread_safe 0.3.5 
 +Using builder 3.2.2 
 +Using erubis 2.7.0 
 +Using nokogiri 1.6.7.2 
 +Using rack 1.6.4 
 +Using mime-types 2.6.1 
 +Using arel 6.0.3 
 +Using debug_inspector 0.0.2 
 +Using bundler 1.11.2 
 +Using columnize 0.9.0 
 +Using coffee-script-source 1.9.1.1 
 +Using execjs 2.6.0 
 +Using thor 0.19.1 
 +Using multi_json 1.11.2 
 +Using rdoc 4.2.1 
 +Using sass 3.4.21 
 +Using tilt 2.0.1 
 +Using spring 1.3.6 
 +Using sqlite3 1.3.11 
 +Using tzinfo 1.2.2 
 +Using loofah 2.0.3 
 +Using rack-test 0.6.3 
 +Using sprockets 3.3.0 
 +Using mail 2.6.3 
 +Using binding_of_caller 0.7.2 
 +Using byebug 5.0.0 
 +Using coffee-script 2.4.1 
 +Using uglifier 2.7.2 
 +Using sdoc 0.4.1 
 +Using activesupport 4.2.6 
 +Using rails-html-sanitizer 1.0.3 
 +Using rails-deprecated_sanitizer 1.0.3 
 +Using globalid 0.3.6 
 +Using activemodel 4.2.6 
 +Using jbuilder 2.3.1 
 +Using rails-dom-testing 1.0.6 
 +Using activejob 4.2.6 
 +Using activerecord 4.2.6 
 +Using actionview 4.2.6 
 +Using actionpack 4.2.6 
 +Using actionmailer 4.2.6 
 +Using railties 4.2.6 
 +Using sprockets-rails 2.3.2 
 +Using coffee-rails 4.1.0 
 +Using jquery-rails 4.0.5 
 +Using rails 4.2.6 
 +Using sass-rails 5.0.4 
 +Using web-console 2.2.1 
 +Using turbolinks 2.5.3 
 +Bundle complete! 12 Gemfile dependencies,​ 53 gems now installed. 
 +Use `bundle show [gemname]` to see where a bundled gem is installed. 
 +         ​run ​ bundle exec spring binstub --all 
 +* bin/rake: spring inserted 
 +* bin/rails: spring inserted
 </​code>​ </​code>​
 +  * Lancez ensuite le serveur Rails pour exécuter l'​application __weblog__
 +<code bash>cd $HOME/​weblog
 +bin/rails server
 +=> Booting WEBrick
 +=> Rails 4.2.6 application starting in development on http://​localhost:​3000
 +=> Run `rails server -h` for more startup options
 +=> Ctrl-C to shutdown server
 +[2017-07-17 01:28:37] INFO  WEBrick 1.3.1
 +[2017-07-17 01:28:37] INFO  ruby 2.3.1 (2016-04-26) [x86_64-linux-gnu]
 +[2017-07-17 01:28:37] INFO  WEBrick::​HTTPServer#​start:​ pid=1849 port=3000
  
  
-Votre installation est terminéeVous pouvez utiliser Ruby et Rails de façon classique. +Started GET "/"​ for 127.0.0.1 at 2017-07-17 01:34:32 -1000 
- +Processing by Rails::​WelcomeController#​index as HTML 
-=== Intégration avec Apache 2 === +  Rendered ​/usr/lib/ruby/​vendor_ruby/​rails/templates/rails/welcome/index.html.erb (0.0ms) 
- +Completed 200 OK in 1ms (Views: 0.7ms | ActiveRecord:​ 0.0ms)
-Rails 3.0 pose quelques soucis avec Mongrel +
-Par contre, l'​utilisation de passenger à la place se veut très simple et efficace : +
-[[http://​www.nicosphere.net/​configuration-dapache-avec-passenger-pour-rails-2215]] +
- +
-===== Installation complète (Karmic Koala) ===== +
- +
-<​note>​Un gem c'est un peu comme un paquet deb.\\ +
-La version ​1.9 de Ruby correspond à la version de test.</​note>​ +
- +
-Pour installer Ruby et le framework Ruby on Rails, il faut installer les paquets **ruby**, **ruby-dev** et **libopenssl-ruby** ​: +
-<​code>​sudo apt-get install ruby ruby-dev libopenssl-ruby</​code>​ +
-^ Ruby On Rails en un clic ^[[apt://ruby,​ruby-dev,​libopenssl-ruby|{{ :apt.png |Installer en 1 clic.}}]]| +
- +
-La version de RubyGems située dans les dépôts est trop ancienne pour installer le gem **rails**. Installons RubyGems manuellement : +
-<​code>​ +
-wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz +
-tar -xvf rubygems-1.3.7.tgz +
-sudo ruby rubygems-1.3.7/​setup.rb +
-sudo ln -s /​usr/​bin/​gem1.8 /​usr/​bin/​gem+
 </​code>​ </​code>​
-Mettez éventuellement RubyGems à jour : +<note>Dans la version de Ubuntu 14.04 Rails 3.2 : 
-<code>sudo gem update --system</​code>​ +  ​la base préconfigurée de l'application doit être activée 
- +<​code ​bash>cd $HOME/weblog 
-Ensuite il faut mettre ​la ligne suivante dans **~/.gemrc** pour indiquer le chemin où installer les binaires et désactiver ​l'installation des docs qui sont longues à installer : +rake db:create</​code>​ 
-<​code>​gem: --bindir ​/usr/​local/​bin --no-ri --no-rdoc</​code>​ +  l'​exécution "rails server"​ s'​effectue sans mentionner bin dans le chemin
- +<​code>​rails server</​code>​
-Puis installer la gem **rails** ​: +
-<​code>​sudo gem install rails</​code>​ +
- +
-Pour pouvoir interfacer Ruby avec MySQL, il faut installer le paquet ​**libmysqlclient-dev** ​ : +
-<​code>​sudo apt-get install libmysqlclient-dev</​code>​ +
-^Installation du gem mysql^|[[apt://​libmysqlclient-dev|{{ :apt.png |Installer ​le paquet.}}]]| +
-Ainsi que le gem **mysql** : +
-<​code>​sudo gem install mysql</​code>​ +
- +
-===== Installation standard ===== +
- +
-<​note>​ +
-Depuis Dapper, vous pouvez installer **Rails** depuis les dépôts, mais cette solution est connue pour causer des problèmes entre apt-get et le manager de paquets gem. Le mieux est d'​installer Rails par le biais des **gems**.+
 </​note>​ </​note>​
 +  * Lancez le navigateur web à l'​adresse localhost:​3000,​ exemple avec __midori__
 +<​code>​midori http://​localhost:​3000</​code>​
 +{{::​midori_ror_new_weblog_capture_2017-07-17_01-35-55.jpg?​direct&​300|midori localhost:​3000}}
 +==== Utilisations avancées ====
  
-==== Installation de Ruby ==== +Les utilisateurs ​et programmeurs avancés pourront configurer ​Rails avec d'​autres serveurs ​web comme Apache ​
- +  * modules ​[[https://www.phusionpassenger.com/|Phusion Passenger]] Rails et Rack pour Apache **[[apt>libapache2-mod-passenger]]** ,
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **y rubygems** +
- +
-Sous [[hardy]], [[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **ruby-full libyaml-ruby libzlib-ruby rubygems** +
- +
-Sous [[intrepid]],​ il faut [[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] **ruby-full libyaml-ruby libzlib-ruby rails**, mais pas rubygem. Pour le récupérer,​ il faut télécharger l'​archive de la dernière version sur ce site : http://​rubyforge.org/​frs/?​group_id=126. +
-Après avoir extrait l'​archive,​ il faut rendre le fichier :  "​setup.rb"​ exécutable ​et le lancer avec ruby ( la commande peut être "​ruby1.8",​ dans ce cas, vous pouvez faire un lien symbolique avec "​ruby"​.  +
-   sudo ruby1.8 ./​setup.rb +
-Fil de discussion à ce sujet : [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=288407]] +
- +
-==== Mise à jour de RubyGems ==== +
-<note help> +
-Si vous êtes derrière un proxy, il faut d'​abord mettre la variable d'​environnement : +
-<​code>​ +
-export HTTP_PROXY=http://​url_du_proxy:​port_HTTP +
-</​code>​ +
-</​note>​ +
- +
-<​code>​ +
-sudo gem update +
-sudo gem update --system +
-</​code>​ +
- +
- +
-==== Installation de Rails et ses dépendances (avec RubyGems) ==== +
- +
-  sudo gem install rails --include-dependencies +
-ou pour la version courte : +
-  sudo gem install rails -y +
- +
->Pas besoin d'​option (//​--include-dependencies//​ ou //-y//) sous Hardy car elles sont mises par défaut.\\ FIXME et pour Gutsy et précédentes ? toujours d'​actualité ? +
- +
-<note help>Si vous obtenez une erreur du type : +
-<​file>​ +
-uninitialized constant Gem::​GemRunner +
-</​file>​ +
- +
-[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​usr/​bin/​gem** et ajoutez la ligne : +
-<​file>​require '​rubygems/​gem_runner'</​file>​ juste avant la ligne : +
-<​file>​require '​rubygems'</​file>​ +
-puis relancez la commande voulue. +
-</​note>​ +
- +
-Vous pouvez dès lors installer les « gems » dont vous avez besoin. +
- +
-<​note>​ +
-Suite à un gem update --system, vous pouvez rencontrer ce type d'​erreur,​ simplement parce que /​usr/​bin/​gem est différent de /​usr/​bin/​gem1.8. +
-J'ai résolu le problème simplement en supprimant /​usr/​bin/​gem et en faisant un lien symbolique vers /​usr/​bin/​gem1.8 : +
-<​file>​ +
-sudo rm /​usr/​bin/​gem +
-sudo ln -s /​usr/​bin/​gem1.8 /​usr/​bin/​gem +
-</​file>​ +
-</​note>​ +
-===== Créez votre première application Rails ===== +
- +
-Entrez la commande suivante : +
-  rails new /​chemin/​vers/​la/​nouvelle/​application +
- +
-Évidemment,​ remplacez ///​chemin/​vers/​la/​nouvelle/​application//​ par le chemin vers lequel vous voulez stocker le code de votre application.\\ +
-Par exemple ~/​rails/​maKillerApp +
-===== Installations supplémentaires ===== +
- +
-Rails est installé avec le serveur WebRick. Une fois votre application créée, vous pouvez la visualiser en vous plaçant dans le répertoire de l'​application et en tapant : +
-  rails server +
-Le serveur WebRick se lance alors et vous pouvez y accéder à l'​adresse http://​localhost:​3000 +
- +
-Vous pouvez aussi installer et utiliser ​d'​autres serveurs... +
- +
-==== Mongrel ==== +
- +
-Pour installer [[http://​mongrel.rubyforge.org/​|mongrel]],​  +
-[[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **build-essential ruby1.8-dev**,​ puis entrez la commande : +
-  sudo gem install mongrel +
- +
- +
- +
- +
- +
-==== Mongrel_cluster et apache 2.2 ==== +
- +
-1 - installer mongrel : +
-  sudo gem install gem_plugin mongrel mongrel_cluster --include-dependencies +
- +
-2 - créer le fichier de configuration de mongrel_cluster : +
-  sudo mongrel_rails cluster::​configure -e production ​ -p 8000 -N 3 -c /​var/​www/​monsite -C /​var/​www/​monsite/​config/​mongrel_cluster.yml -a 127.0.0.1 --user www-data --group www-data +
--e : indique le type d'​environnement du serveur, ici production\\ +
--p : indique le port de la première instance du serveur mongrel, ici 8000\\ +
--N : indique le nombre d'​instance à lancer, ici 3\\ +
--c : indique le chemin du site, ici /​var/​www/​monsite\\ +
--C : indique où enregistrer le fichier de config que cette commande génère, ici /​var/​www/​monsite/​config\\ +
--a : indique à Rails découter l'​interface du réseau local 127.0.0.1\\ +
---user : indique l'​identité de l'​utilisateur avec lequel démarrer les processus mongrel, ici www-data\\ +
---group : indique l'​identité de le group avec lequel démarrer les processus mongrel, ici www-data\\ +
- +
-3 - créer un lien symbolique du fichier précédent vers /​etc/​mongrel_cluster : +
-  sudo ln -s /​var/​www/​monsite/​config/​mongrel_cluster.yml ​ /​etc/​mongrel_cluster/​monsite.yml +
- +
-NOTE : au point 2 on aurait pu enregistrer directement le fichier de configuration du cluster dans /​etc/​mongrel_cluster,​ ce qui aurait évité d'​avoir à créer un lien symbolique, cela permet ici de garder la configuration du cluster dans le site lui-meme (au choix) +
- +
-4 - lancer le cluster mongrel : +
-  sudo mongrel_rails cluster::​start -C /​etc/​mongrel_cluster/​monsite.yml +
- +
-5 - activer les modules apache correspondant : +
-  sudo a2enmod rewrite +
-  sudo a2enmod proxy +
-  sudo a2enmod proxy_balancer +
-  sudo a2enmod proxy_http +
- +
-6 - configurer apache : +
-  sudo gedit /​etc/​apache2/​sites-available/​default +
-   +
-et modifier la première ligne +
-  NameVirtualHost * +
-  <​VirtualHost *> +
- +
-puis +
-  sudo gedit /​etc/​apache2/​sites-available/​monsite +
- +
-et modifier le fichier ​comme suit +
-  <​VirtualHost *> +
-  ServerName monsite +
-  ServerAdmin admin@monsite.fr +
-   +
-  DocumentRoot /​var/​www/​public +
-  <​Directory /​var/​www/​public/>​ +
-  Options FollowSymLinks +
-      AllowOverride none +
-  Order allow,​deny +
-  allow from all +
-  </​Directory>​ +
-   +
- <Proxy balancer://​mongrel_cluster>​ +
- BalancerMember http://​127.0.0.1:​8000 +
- BalancerMember http://​127.0.0.1:​8001 +
- BalancerMember http://​127.0.0.1:​8002 +
- </​Proxy>​ +
-  ​ +
- RewriteCond %{DOCUMENT_ROOT}/​%{REQUEST_FILENAME} -f +
- RewriteRule (.*) $1 [L] +
-   +
- ProxyPass / Balancer://​mongrel_cluster/​ +
- ProxyPassReverse / balancer://​mongrel_cluster/​ +
-   +
- # Deflate +
- AddOutputFilterByType DEFLATE text/html text/plain text/xml application/​xml application/​xhtml+xml text/​javascript text/css +
- BrowserMatch ^Mozilla/4 gzip-only-text/​html +
- BrowserMatch ^Mozilla/​4.0[678] no-gzip +
- BrowserMatch \bMSIE !no-gzip !gzip-only-text/​html +
-   +
-   +
- # Possible values includedebug, info, notice, warn, error, crit, +
- # alert, emerg. +
- LogLevel warn +
-   +
- ErrorLog ​/var/log/​apache2/​monsite.log +
- CustomLog /​var/​log/​apache2/​access.log combined +
- ServerSignature Off +
-   +
-  </VirtualHost>​ +
- +
-activer le serveur virtuel +
-  sudo a2ensite monsite +
- +
-7 - modifier le mode proxy d'​apache par défaut :\\ +
-par défaut le mode proxy est interdit à tout le monde, ce qui a pour effet que toute requete à apache se solde par "​forbidden",​ il faut donner l'​autorisation de consulter les pages à tout le monde +
-  sudo gedit /​etc/​apache2/​mods-available/​proxy.conf +
-commenter les lignes qui interdisent la consultation et donner l'​autorisation à tout le monde +
-                #Order deny,​allow +
-                #Deny from all +
-                Order allow,​deny +
-                Allow from all +
- +
-8 - relancer apache +
-  sudo /​etc/​init.d/​apache2 restart +
-   +
-<note important>​En cas de "​mongrel_rails:​ command not found" => créer un lien symbolique de /​var/​lib/​gems/​1.8/​bin/​mongrel_rails vers /​usr/​bin</​note>​ +
- +
-==== MySQL ==== +
- +
-Pour installer le gem mysql,  +
-[[:​tutoriel:​comment_installer_un_paquet|installez]] le paquet **libmysqlclient15-dev** puis entrez la commande : +
-  sudo gem install mysql +
- +
- +
-==== Postgres ==== +
-Pour pouvoir utiliser postgres avec Rails,  +
-[[:​tutoriel:​comment_installer_un_paquet|installez]] les paquets **make** (si cela n'est pas déjà fait) et **libpq-dev** puis entrez la commande : +
-  sudo gem install postgres +
- +
-===== Configuration avancée de Apache + FCGI ===== +
-Il est aisé de tester Ruby on Rails avec le serveur intégré WEBrick ou mongrel, mais pour ceux qui veulent intégrer Ruby on Rails dans un environnement ​Apache, voici les instructions. +
- +
-<note important>​L'​utilisation de fastcgi est fortement déconseillée et il convient maintenant d'​utiliser apache 2.2 et son mode proxy_balancer couplé à des serveurs mongrel en cluster (cf supra)</​note>​ +
- +
-==== Pré-requis ==== +
-  ​Avoir Ruby on Rails installé et fonctionnel +
-  ​Votre application doit fonctionner en utilisant WEBrick ( ''/​chemin/​vers/​l/​application/​script/​server''​ ).\\ Cela signifie que vous avez toutes les librairies et gems correctement installées. +
-  * Avoir une installation d'​Apache fonctionnelle. (voir [[lamp]] (Contentez vous d'​installer Apache et MySQL) si ce n'est pas le cas). +
- +
-Activez le mod_rewrite : +
-  sudo a2enmod rewrite +
- +
-Installez le support de FCGI pour Apache et Ruby en [[:​tutoriel:​comment_installer_un_paquet|installant le paquet]] **libapache2-mod-fcgid**.\\ +
-Après l'​installation de mod_fcgid le module devrait être activé, sinon faites <​code>​sudo a2enmod fcgid</​code>​ +
- +
-Vous pouvez [[:​tutoriel:​comment_installer_un_paquet|installer]] **libfcgi-ruby1.8** depuis les [[:​dépôts]]mais le meilleur moyen est de le faire en utilisant **rubygems** de cette façon : +
- +
-Installez d'​abord les paquets **build-essential ruby1.8-dev libfcgi-dev** puis faites : +
-  sudo gem install fcgi +
- +
-===== Choix du mode de fonctionnement de l'​application ===== +
- +
-Maintenant vous devez décider si votre application fonctionnera comme serveur virtuel de votre serveur web, ou si elle sera intégrée à la structure préexistante de votre serveur. +
- +
-==== Serveur virtuel ==== +
- +
-Éditer un nouveau fichier **/​etc/​apache2/​sites-available/<​nom du serveur>​** pour créer un hôte virtuel. +
- +
-Le contenu du fichier devra être : +
-<​file>​ +
-<​VirtualHost *> +
-        SetEnv RAILS_ENV development +
-        ServerName www.monsite.com +
-        DocumentRoot /​chemin/​vers/​l/​application/​public +
-        <​Directory /​chemin/​vers/​l/​application/​public/>​ +
-                Options ExecCGI FollowSymLinks +
-                AddHandler fcgid-script .fcgi +
-                Order allow,​deny +
-                Allow from all +
-                RewriteEngine On +
-                RewriteRule ^$ index.html [QSA] +
-                RewriteRule ^([^.]+)$ $1.html [QSA] +
-                RewriteCond %{REQUEST_FILENAME} !-f +
-                RewriteRule ^(.*)$ /​dispatch.fcgi?​$1 [QSA,L] +
-                AllowOverride None +
-        </​Directory>​ +
-        ServerSignature On +
-#       ​ErrorDocument 500 /500.html +
-        ErrorLog /​var/​log/​apache2/​www.monsite.com.error.log +
-        CustomLog /​var/​log/​apache2/​www.monsite.com.access.log combined +
-        LogLevel warn +
-</​VirtualHost>​ +
-</​file>​ +
- +
-Bien sûr, remplacez les valeurs par celles qui correspondent à votre installation. Soyez sûrs de bien mentionner le chemin vers le répertoire public de votre application Rails ( ''/​chemin/​vers/​l/​application/​public''​ ). +
- +
-Pour les fichiers d'​accès et d'​erreurs,​ créez un répertoire ou mettez les où vous voulez. +
- +
-Si tout est configuré de cette manière vous pouvez vous passez du fichier ''​.htaccess''​ dans le répertoire public de votre application. Mais il n'est pas nécessaire d'y toucher ou de le supprimer. +
- +
-Si c'est une installation locale et que vous ne prévoyez pas d'​avoir une entrée DNS pour votre serveur virtuel, vous pouvez ajouter <nom du serveur> dans votre fichier **/​etc/​hosts** à la ligne commençant par 127.0.0.1 (en séparant de ce qui est déjà écrit par un espace ou une tabulation). +
- +
-Maintenant il faut activer le serveur virtuel +
-  sudo a2ensite <nom du serveur>​ +
- +
-Puis redémarrez le serveur Apache +
-  sudo /​etc/​init.d/​apache2 restart +
- +
-Tout devrait fonctionner normalement. +
- +
-Si vous avez ajouté ''<​nom du serveur>''​ à **/​etc/​hosts**,​ n'​oubliez pas que c'est un changement local et que vous devrez faire la même chose sur chaque machine utilisant l'​application. sur les autres machines le nom du serveur virtuel devra être précédé de l'IP réelle du serveur et non de 127.0.0.1. +
- +
-=== Problèmes === +
- +
-Cliquez sur le bouton « About your application'​s environment » de la page d'​accueil de votre application et consultez ce qui suit pour connaître la source du problème. +
- +
-== Beaucoup de texte, commençant par **#​!/​usr/​bin/​ruby1.8**... == +
- +
-Le handler CGI/FCGI n'est pas configuré correctement. +
- +
-Vérifiez que la configuration du serveur virtuel ne **contient pas** la directive ''​AllowOverride none''​. +
- +
-== 404 == +
-Les règles de réécriture n'ont pas d'​effet. +
- +
-Vérifiez que la configuration du serveur virtuel ne **contient pas** la directive ''​AllowOverride none''​. +
- +
-== Application Error == +
- +
-Apache n'a pas les permissions correctes pour exécuter l'​application. +
- +
-Les répertoires **log** et **tmp** de votre application doivent être  accessibles en écriture par le serveur Apache. Le meilleur moyen est de changer le propriétaire de ces répertoires en **www-data**. Les permissions devraient être lecture/​écriture pour le propriétaire et lecture seule pour les autres (644) : +
- +
-  chgrp www-data -R /​chemin/​vers/​l/​application/​log +
-  chgrp www-data -R /​chemin/​vers/​l/​application/​tmp +
-  chmod 644 -R /​chemin/​vers/​l/​application/​tmp +
-  chmod 644 -R /​chemin/​vers/​l/​application/​log +
- +
-==== Répertoire en Alias sous la racine du serveur ==== +
- +
-[[:​tutoriel:​comment_editer_un_fichier|Modifiez]] le fichier existant sous **/​etc/​apache2/​sites-available/​**. Insérez ce qui suit juste avant la balise ''</​VirtualHost>''​ dans le fichier : +
-<​file>​ +
-    Alias /<​alias>​ "<​chemin_vers_le_répertoire _public_de _l_application>"​ +
-    <​Directory <​chemin_vers_le_répertoire _public_de _l_application>>​ +
-        Options +FollowSymlinks +ExecCGI +
-        Order allow,​deny +
-        Allow from all +
-        AddHandler fcgid-script .fcgi +
-        RewriteEngine On +
-        RewriteBase /<​alias>​ +
-        RewriteRule ^$ index.html [QSA] +
-        RewriteRule ^([^.]+)$ $1.html [QSA] +
-        RewriteCond %{REQUEST_FILENAME} !-f +
-        RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] +
-        ErrorDocument 500 /500.html +
-    </​Directory>​ +
-</​file>​ +
- +
-  * <​chemin_vers_le_répertoire _public_de_l_application>​ est explicite (donc si votre application se situe dans `/​var/​www-rails/​app`,​ ça devra être `/​var/​www-rails/​app/​public`). +
-  * <​alias>​ est le chemin relatif à la racine de votre serveur ou vous vous "​situer"​ votre application (ie. `Alias /xxx/yyy` signifie que votre application sera accessible par l'url `http://​votre_serveur_web/​xxx/​yyy`). +
- +
-Aucune modification du fichier **/​etc/​hosts** n'est nécessaire. +
- +
-Redémarrez votre serveur apache : +
-  sudo /​etc/​init.d/​apache2 restart +
- +
-et essayez votre application. +
- +
-===== Problèmes rencontrés ===== +
-  * Après la commande  +
-<​code>​ +
-rake db:​migrate +
-</​code>​ +
-Si vous obtenez l'​erreur suivante : +
- +
-<​code>​ +
-Please install the postgres adapter: `gem install activerecord-postgres-adapter` (no such file to load -- active_record/​connection_adapters/​postgres_adapter) +
-</​code>​ +
- +
-Il faut vérifier que vous avez bien **postgresql** dans votre fichier **config/​database.yml** et non pas **postgres**. Pour palier à ce problème, utilisez la commande suivante lors de la création de votre projet : +
-<​code>​ +
-rails mon_projet -d postgresql +
-</​code>​ +
-===== Liens ===== +
- +
-  * [[http://​www.stoneageblog.com/​articles/​2006/​11/​20/​ubuntu-edgy-eft-installer-rubyonrails-eclipse-radrails|Installer Ruby On Rails et Radrails sous Ubuntu Edgy Eft]] +
-  * [[http://​www.stoneageblog.com/​articles/​2007/​01/​11/​debian-on-rails-apache-2-2-mysql-ruby-rails-php-mongrel-mongrel_cluster-subversion-trac-capistrano/​|Serveur RubyOnRails avec Mongrel, Mongrel Cluster, Apache 2.2, Subversion, Trac et Capistrano]] (Réalisé sous debian etch mais identique sous Ubuntu. +
-  * [[http://​www.stoneageblog.com/​articles/​2007/​03/​04/​ma-premiere-application-ruby-on-rails/​|Débuter avec Ruby On Rails : ma première application !]] +
-  * [[http://​blog.escarworld.com/​post/​2010/​10/​12/​Installation-Ruby-enterprise-edition-%28REE%29-Passenger-Nginx|Installer ruby enterprise edition avec passenger et nginx.]]+
  
 +ou d'​autres moteurs de bases de données comme MySQL, PostgreSQL, ou via la connexion de bases JDBC. Lire soigneusement [[https://​guides.rubyonrails.org/​|les guides de rubyonrails]] et [[http://​api.rubyonrails.org/​|l'​API]].
 +===== Désinstallation =====
 + 
 +Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'​application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
 + 
 +===== Voir aussi =====
 + 
 +  * **(en)** [[http://​rubyonrails.org|Rails]]
 +  * **(fr)** [[wpfr>​Ruby_on_Rails|Ruby on Rails sur Wikipédia]]
 +  * **(fr)** [[http://​railspremierspas.humancoders.com|Vos premiers pas en Ruby on Rails]]
 + 
 ---- ----
 +//​Correcteur : [[utilisateurs:​j5012|J5012]].//​
 + 
 +//Basé sur [[https://​guides.rubyonrails.org/​getting_started.html|Getting Started with Rails]] par [[https://​guides.rubyonrails.org/​credits.html]].//​
  
-tiré de [[https://​help.ubuntu.com/​community/​RubyOnRails]] 
  • rubyonrails.1291131024.txt.gz
  • Dernière modification: Le 30/11/2010, 16:30
  • (modification externe)