Created
May 3, 2018 15:58
-
-
Save lorenadl/c80413514bee296fff05030ef8a76bb8 to your computer and use it in GitHub Desktop.
[RoR] Configurare un ambiente di sviluppo RoR con Vagrant
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
---- Ambiente di sviluppo RoR con Vagrant ---- | |
http://www.intelligentbee.com/blog/2013/09/17/setup-a-simple-ruby-2-on-rails-4-environment-with-vagrant-and-virtual-box/ | |
1. Scaricare ed installare Vagrant | |
controllare la verione con: | |
> vagrant -v | |
2. Creare una cartella per l'applicazione Rails | |
>mkdir myapp | |
>cd myapp | |
3. Inizializzare la macchina virtuale Vagrant: | |
>vagrant init hashicorp/precise64 | |
Supponiamo che la cartella 'rorscheduler' che contiene il Vagrantfile sia in | |
c:\vagrant | |
--- Controllare che nel Vagrantfile sia configurato il forward della porta 3001 (o altra) della VM sulla macchina fisica: | |
Trovare questa riga: | |
# config.vm.network :forwarded_port, guest: 80, host: 8080 | |
ed aggiungere appena sotto questa: | |
config.vm.network :forwarded_port, guest: 3001, host: 3001 | |
--- Far partire la macchina virtuale | |
>vagrant up | |
--- Accedere alla VM con ssh | |
>vagrant ssh | |
- Se compare l'errore: | |
'ssh' executable not found in any direcotries in the %PATH% variable... | |
vuol dire che non è installato ssh. | |
Usare putty su 127.0.0.1:2222 | |
(username e password: vagrant) | |
--- | |
--- Per andare nella cartella dell'applicazione: | |
>cd /vagrant | |
nota: esiste anche /home/vagrant, ma non è questa la cartella giusta!!! | |
--- Ci assicuriamo che apt-get sia aggiornato: | |
>sudo apt-get update | |
--- localizzazione (lanciare questi comandi, altrimenti poi ci sono casini con i db)--- | |
>sudo locale-gen it_IT.UTF-8 | |
>sudo dpkg-reconfigure locales | |
--- Installiamo curl (necessario per Ruby2): | |
>sudo apt-get install curl | |
--- Installiamo RVM e l'ultima versione di Ruby con un solo comando: | |
>\curl -L https://get.rvm.io | bash -s stable --ruby | |
- dà errore "GPG signature verification failed". | |
eseguo comando suggerito: | |
(esempio) >gpg --keyserver hkp://keys.gnupg.net --recv-keys xxxx | |
OK. Rifaccio: | |
>\curl -L https://get.rvm.io | bash -s stable --ruby | |
OK!!!! | |
--- Ricarico il profilo (attenzione che nella shell dos il copia/colla non copia la ~): | |
>source ~/.profile | |
(~ refers to your home directory, so you can always type $HOME instead of ~) | |
--- Controlliamo la versione di rvm (che dovrebbe essersi installato): | |
>rvm -v | |
--- Controlliamo ruby (dovrebbe aver installato l'ultima versione): | |
>rvm list | |
ma potrebbe non corrispondere con la versione in uso: | |
>ruby -v | |
--- Controllare che nel file ~/.profile ci sia questa riga (altrimenti non possiamo cambiare tra le versioni di Ruby): | |
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" | |
--- Ricaricare il profilo: | |
>source ~/.profile | |
--- Creare gemfile e file di configurazione automatica che imposta da solo versione di ruby e gemset quando si entra nella directory | |
rvm --create --rvmrc 2.1.5@myapp | |
----------------------------------------------------------------------------- | |
--- Possiamo cambiare la versione in uso di Ruby con il comando: | |
(rvm use ruby-2.0.0-p247) | |
>rvm use ruby-2.1.5 | |
e poi ricontrollare la versione di Ruby: | |
>ruby -v | |
--- OK, Ruby è a posto. | |
--- Usiamo i gemset di rvm | |
- creo nuovo gemset | |
>rvm gemset create myapp_project | |
- controllo se ha creato il gemset | |
>rvm gemset list | |
--- impostiamo il ruby + gemset da usare | |
>rvm use 2.2.1@myapp_project | |
----------------------------------------------------------------------------- | |
-- Rails si può mettere nel Gemfile, per cui non è necessario installarlo | |
Se serve installare rails: | |
>gem install rails | |
Controlliamo la versione: | |
>rails -v | |
--- | |
--- eseguire i seguenti comandi, altrimenti 'bundle install' dà errore su pg (Can't find the 'libpq-fe.h header) | |
e rmagick (An error occurred while installing rmagick (2.13.4), and Bundler cannot continue): | |
>sudo apt-get install libpq-dev | |
>sudo apt-get install libmagickwand-dev imagemagick | |
--- installare le gemme che servono con bundler | |
>cd /vagrant/myapp | |
>bundle install | |
--- Facciamo partire il server (con rails 4 è necessario fare il binding di 0.0.0.0 con parametro -p per impostare una porta diversa): | |
- Ricordarsi sempre di impostare rvm per usare la versione giusta di ruby e gemset (basta la prima volta): | |
>rvm use 2.2.1@myapp_project | |
>rails server -b 0.0.0.0 -p 3001 | |
Vediamo l'app: | |
http://localhost:3001/ | |
------ configurazione virtual host (itmanager) | |
<VirtualHost *:80> | |
# This Rails web app will use Ruby 2.2.1, as installed by RVM | |
PassengerRoot /usr/local/rvm/gems/ruby-2.2.0@myapp_project/gems/passenger-4.0.59 | |
PassengerRuby /usr/local/rvm/gems/ruby-2.2.1@myapp_project/wrappers/ruby | |
ServerName myapp.mydomain.com | |
DocumentRoot /var/www/html/myapp/public | |
RailsEnv development | |
<Directory /var/www/html/myapp/public> | |
AllowOverride all | |
Order Allow,Deny | |
Allow from all | |
</Directory> | |
</VirtualHost> | |
Attenzione: è possibile usare un solo passenger anche se ci sono più versioni di ruby installate con rvm (vedi righe PassengerRoot e PassengerRuby) | |
---------------------------------------------- | |
-------- Vagrant Box (backup vm) con Virtualbox------- | |
http://superuser.com/questions/635256/copy-vagrant-box-locally | |
--- chiudere l'ssh sulla vm (putty) | |
--- Da prompt di dos (non da putty), entrare nella cartella che contiene il Vafrantfile: | |
(Questo comando esporta un box file chiamato package.box di default) | |
>vagrant package | |
--- aggiungo il box file package.box alle boxes esistenti: | |
>vagrant box add --name myapp --provider virtualbox package.box | |
--- controllo che l'abbia aggiunta: | |
>vagrant box list | |
------------- DA TESTARE------------ | |
------------ Per ripristinare la vm dal box file | |
--- Creare una nuova cartella e inizializzare vagrant come al solito: | |
>vagrant init | |
--- impostare la box che ci interessa nel Vagrantfile: | |
config.vm.box = "myapp" | |
--- La vm si accenderà con gli stessi identici dati della vm precedente lanciando: | |
>vagrant up | |
ok!! | |
Così si è creata una vm identica alla precedente. | |
Dobbiamo modificare il Vagrantfile per forwardare la porta 3001: | |
config.vm.network :forwarded_port, guest: 3001, host: 3001 | |
Dobbiamo poi copiarci dentro i sorgenti (nella cartella /vagrant) e tutto funziona. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment