Questo tutorial ti mostrerà come installare i framework Elixir e Phoenix su un'istanza del server Vultr Ubuntu 16.04 a scopo di sviluppo.
Prerequisiti
- Una nuova istanza del server Vultr Ubuntu 16.04
- Accesso effettuato come utente sudo non root.
Aggiorna il sistema:
sudo apt-get update
Installa Erlang
Installa Erlang con i seguenti comandi:
cd ~
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install esl-erlang
È possibile verificare l'installazione:
erl
Questo ti porterà alla shell Erlang con il seguente output:
Erlang/OTP 21 [erts-10.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.1 (abort with ^G)
1>
Premi CTRL+ Cdue volte per uscire dalla shell Erlang.
Installa Elisir
Installa Elisir con apt-get
:
sudo apt-get install elixir
Ora puoi verificare l'installazione di Elixir:
elixir -v
Questo mostrerà il seguente output:
Erlang/OTP 21 [erts-10.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Elixir 1.7.3 (compiled with Erlang/OTP 20)
Ora hai Elixir 1.7.3 installato sul tuo sistema.
Installa Phoenix
Se abbiamo appena installato Elixir per la prima volta, dovremo installare anche il gestore pacchetti Hex. Hex è necessario per far funzionare un'app Phoenix e per installare eventuali dipendenze extra di cui potremmo aver bisogno lungo la strada.
Digita questo comando per installare Hex:
mix local.hex
Ora possiamo procedere con l'installazione di Phoenix:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
Installa Node.js
Phoenix utilizza brunch.io per compilare risorse statiche (javascript, css e altro), quindi sarà necessario installare Node.js.
Il modo consigliato per installare Node.js è tramite nvm
(gestore versione nodo).
Per installare nvm
eseguiamo questo comando:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Per scoprire le versioni di Node.js disponibili per l'installazione, è possibile digitare quanto segue:
nvm ls-remote
Questo produrrà:
Output
...
v8.8.1
v8.9.0 (LTS: Carbon)
v8.9.1 (LTS: Carbon)
v8.9.2 (LTS: Carbon)
v8.9.3 (LTS: Carbon)
v8.9.4 (LTS: Carbon)
v8.10.0 (LTS: Carbon)
v8.11.0 (LTS: Carbon)
v8.11.1 (LTS: Carbon)
v8.11.2 (LTS: Carbon)
v8.11.3 (LTS: Carbon)
v8.11.4 (LTS: Carbon)
-> v8.12.0 (Latest LTS: Carbon)
...
Installa la versione che desideri con il seguente comando:
nvm install 8.12.0
Nota: se si desidera utilizzare una versione diversa, sostituirla 8.12.0
con la versione desiderata.
Indica nvm
di utilizzare la versione che abbiamo appena scaricato:
nvm use 8.12.0
Verifica che il nodo sia stato installato correttamente:
node -v
Installa PostgreSQL
È possibile installare PostgreSQL facilmente utilizzando il sistema di packaging apt.
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Apri la shell PostgreSQL:
sudo -u postgres psql
Cambia la postgres
password in una password sicura:
\password postgres
Dopo aver modificato correttamente la password, è possibile uscire dalla shell PostgreSQL:
\q
Riavvia il servizio PostgreSQL:
sudo systemctl restart postgresql.service
Questo è un watcher di filesystem solo Linux che Phoenix usa per ricaricare il codice live:
sudo apt-get install inotify-tools
Crea un'applicazione Phoenix
Crea una nuova applicazione:
mix phoenix.new ~/phoenix_project_test
Se il comando restituisce il seguente errore:
** (Mix) The task "phx.new" could not be found
Puoi risolverlo con il seguente comando:
mix archive.install https://raw.githubusercontent.com/phoenixframework/archives/master/phx_new.ez
Ora esegui nuovamente il comando per creare un'app Phoenix di prova:
mix phoenix.new ~/phoenix_project_test
Cambia la password PostgreSQL nel file di configurazione con la password che hai impostato nel passaggio precedente:
nano config/dev.exs
L'applicazione verrà ora creata correttamente. Passare alla cartella dell'applicazione e avviarlo:
cd ~/phoenix_project_test
mix ecto.create
mix phx.server
Ora l'applicazione Phoenix è attiva e funzionante al porto 4000
.