Preduvjeti
Instalirajte Erlang
Instalirajte Elixir
Instalirajte Phoenix
Instalirajte Node.js
Instalirajte PostgreSQL
Instalirajte inotify-alate
Napravite Phoenix aplikaciju
Ovaj vodič će vam pokazati kako instalirati okvire Elixir i Phoenix na instancu poslužitelja Vultr Ubuntu 16.04 u svrhu razvoja.
Preduvjeti
- Nova instanca poslužitelja Vultr Ubuntu 16.04
- Prijavljen kao nekorijenski sudo korisnik.
Ažurirajte sustav:
sudo apt-get update
Instalirajte Erlang
Instalirajte Erlang sa sljedećim naredbama:
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
Možete provjeriti instalaciju:
erl
Ovo će vas odvesti do Erlang ljuske sa sljedećim izlazom:
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>
Pritisnite CTRL+ Cdvaput za izlaz iz Erlang ljuske.
Instalirajte Elixir
Instalirajte Elixir sa apt-get:
sudo apt-get install elixir
Sada možete provjeriti instalaciju Elixira:
elixir -v
Ovo će pokazati sljedeći izlaz:
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)
Sada imate Elixir 1.7.3 instaliran na vašem sustavu.
Instalirajte Phoenix
Ako smo tek prvi put instalirali Elixir, morat ćemo instalirati i Hex paket menadžer. Hex je neophodan za pokretanje Phoenix aplikacije i za instaliranje dodatnih ovisnosti koje bi nam mogle zatrebati usput.
Upišite ovu naredbu da instalirate Hex:
mix local.hex
Sada možemo nastaviti s instalacijom Phoenixa:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
Instalirajte Node.js
Phoenix koristi brunch.io za sastavljanje statičkih sredstava (javascript, css i više), tako da ćete morati instalirati Node.js.
Preporučeni način za instalaciju Node.js je putem nvm(upravitelj verzija čvora).
Za instalaciju nvmpokrećemo ovu naredbu:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Da biste saznali koje su verzije Node.js dostupne za instalaciju, možete upisati sljedeće:
nvm ls-remote
Ovo će dati:
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)
...
Instalirajte verziju koju želite sljedećom naredbom:
nvm install 8.12.0
Napomena: Ako želite koristiti drugu verziju, zamijenite 8.12.0verzijom koju želite.
Recite nvmda koristite verziju koju smo upravo preuzeli:
nvm use 8.12.0
Provjerite je li čvor uspješno instaliran:
node -v
Instalirajte PostgreSQL
PostgreSQL možete jednostavno instalirati koristeći apt sustav pakiranja.
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Otvorite ljusku PostgreSQL:
sudo -u postgres psql
Promijenite postgreslozinku u sigurnu lozinku:
\password postgres
Nakon uspješne promjene lozinke, možete izaći iz PostgreSQL ljuske:
\q
Ponovno pokrenite PostgreSQL uslugu:
sudo systemctl restart postgresql.service
Ovo je promatrač datotečnog sustava samo za Linux koji Phoenix koristi za ponovno učitavanje koda uživo:
sudo apt-get install inotify-tools
Napravite Phoenix aplikaciju
Napravite novu aplikaciju:
mix phoenix.new ~/phoenix_project_test
Ako naredba vrati sljedeću pogrešku:
** (Mix) The task "phx.new" could not be found
Možete to popraviti sljedećom naredbom:
mix archive.install https://raw.githubusercontent.com/phoenixframework/archives/master/phx_new.ez
Sada ponovno pokrenite naredbu za stvaranje testne aplikacije Phoenix:
mix phoenix.new ~/phoenix_project_test
Promijenite PostgreSQL lozinku u konfiguracijskoj datoteci lozinkom koju ste postavili u prethodnom koraku:
nano config/dev.exs
Aplikacija će sada biti uspješno kreirana. Pomaknite se u mapu aplikacije i pokrenite je:
cd ~/phoenix_project_test
mix ecto.create
mix phx.server
Sada je Phoenix aplikacija pokrenuta i radi na portu 4000.