Requisits previs
Pas 1: actualitzeu el sistema
Pas 2: instal·leu Erlang
Pas 3: instal·leu Elixir
Pas 4: instal·leu Phoenix
Pas 5: instal·leu Node.js (opcional)
Pas 6: instal·leu PostgreSQL
Pas 7: instal·leu inotify-tools
Pas 8: creeu una aplicació Phoenix
Phoenix és un marc de desenvolupament web emergent basat en Elixir. Està dissenyat per oferir una alta productivitat de desenvolupament, funcions riques i un rendiment potent en temps d'execució.
Aquest tutorial us mostrarà com instal·lar Phoenix en una instància de servidor Vultr CentOS 7 amb finalitats de desenvolupament.
Requisits previs
Abans de continuar, suposo que teniu:
- S'ha desplegat una nova instància del servidor Vultr CentOS 7.
- Inicieu sessió en aquest sistema CentOS 7 com a usuari sudo no root.
Pas 1: actualitzeu el sistema
sudo yum install epel-release
sudo yum update
sudo reboot
Pas 2: instal·leu Erlang
En primer lloc, heu d'instal·lar Erlang al vostre sistema. Phoenix és un marc escrit en el llenguatge de programació Elixir, i qualsevol aplicació basada en Elixir s'ha de compilar al codi de bytes d'Erlang abans que es pugui executar.
cd ~
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang
Podeu confirmar la vostra instal·lació d'Erlang amb:
erl
Aquesta ordre us portarà a l'intèrpret d'ordres Erlang. Quan inicieu l'intèrpret d'ordres Erlang, veureu la sortida següent.
Erlang/OTP 18 [erts-7.3] [source-d2a6d81] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.3 (abort with ^G)
1>
Premeu Ctrl+Cdues vegades per sortir del shell Erlang.
Pas 3: instal·leu Elixir
Com que la versió d'Elixir al dipòsit YUM del sistema CentOS 7 està força datada, hauríeu d'utilitzar l'arxiu oficial d'Elixir precompilat per instal·lar la darrera versió d'Elixir.
Baixeu i descomprimiu l'últim arxiu precompilat d'Elixir:
cd /usr/bin
sudo mkdir elixir
cd /usr/bin/elixir
sudo wget https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip
sudo yum install unzip
sudo unzip Precompiled.zip
Elixir ja està instal·lat al vostre sistema. Podeu executar ordres Elixir especificant el camí de cada ordre relacionada amb Elixir, com ara:
/usr/bin/elixir/bin/elixir -v
Aquesta ordre us indicarà la versió d'Elixir al vostre sistema.
Com a qüestió de comoditat, podeu afegir la ruta de la safata d'Elixir (juntament amb la ruta de la safata node.js que cal instal·lar) a la vostra PATHvariable d'entorn:
sudo vi /etc/profile
Afegiu la línia següent al final del fitxer:
export PATH="$PATH:/usr/bin/elixir/bin:/usr/bin/node-v6.1.0-linux-x64/bin"
Desa i surt:
:wq
Torna a carregar el perfil:
source /etc/profile
A partir d'ara, podeu executar una ordre relacionada amb Elixir sense especificar el seu camí complet, com ara:
elixir -v
Ara, instal·leu el gestor de paquets Hex executant l' mixordre de la mateixa manera:
cd ~
mix local.hex
Resposta Ydurant el procés d'instal·lació.
Pas 4: instal·leu Phoenix
Utilitzeu l'ordre següent per instal·lar Phoenix:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Resposta Ydurant el procés d'instal·lació.
Pas 5: instal·leu Node.js (opcional)
Si voleu utilitzar brunch.io, l'eina de creació predeterminada de Phoenix, per compilar actius estàtics (javascript, css, etc.), heu d'instal·lar Node.js (>= 5.0.0):
cd ~
wget https://nodejs.org/dist/v6.1.0/node-v6.1.0-linux-x64.tar.xz
sudo yum install xz
xz -d node-v6.1.0-linux-x64.tar.xz
tar -xvf node-v6.1.0-linux-x64.tar
sudo mv ~/node-v6.1.0-linux-x64 /usr/bin/
Recordeu que la ruta de Node.js es va afegir a la variable d'entorn PATH al pas 3. Podeu provar la instal·lació de Node.js amb aquesta ordre:
node -v
Pas 6: instal·leu PostgreSQL
Per defecte, Phoenix utilitza PostgreSQL per configurar aplicacions. A CentOS 7, podeu instal·lar PostgreSQL mitjançant YUM:
sudo yum install -y postgresql-server
sudo postgresql-setup initdb
Inicieu el postgresqlservei:
sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service
Establiu una contrasenya per a l'usuari PostgreSQL predeterminat "postgres":
sudo -u postgres psql
A l'intèrpret d'ordres de PostgreSQL (després que l'indicador es converteixi en postgres=#), establiu una contrasenya per a "postgres":
\password postgres
Introduïu la contrasenya postgresdues vegades, que és la preferida de Phoenix.
Finalment, utilitzeu l'ordre següent per sortir de l'intèrpret d'ordres PostgreSQL.
\q
Configureu el mètode d'autenticació de l'usuari de la base de dades:
sudo vi /var/lib/pgsql/data/pg_hba.conf
Busca la secció següent:
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Modifiqueu el mètode d'autenticació de les connexions locals IPv4 a md5:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Desa i surt:
:wq
Reinicieu el postgresqlservei:
sudo systemctl restart postgresql.service
Utilitzeu l'ordre següent per instal·lar un component necessari "inotify-tools":
sudo yum install inotify-tools
Pas 8: creeu una aplicació Phoenix
Suposem que voleu crear una aplicació Phoenix al directori ~/phoenix_project_1:
mix phoenix.new ~/phoenix_project_1
Respon Ydurant el procés per obtenir i instal·lar dependències.
Aquesta ordre us crearà el directori ~/phoenix_project_1de l'aplicació . Entra al directori i crea una base de dades:
cd ~/phoenix_project_1
mix ecto.create
Resposta Yper instal·lar "rebar" durant la primera creació de la base de dades.
Engegueu la vostra aplicació amb l'ordre següent:
mix phoenix.server
Mentre manteniu viva la connexió SSH actual, inicieu una altra connexió SSH i modifiqueu les regles del tallafoc per concedir accés a la vostra aplicació:
sudo firewall-cmd --zone=public --permanent --add-port=4000/tcp
sudo firewall-cmd --reload
Finalment, utilitzeu un navegador web per visitar la vostra aplicació des de:
http://[your-server-IP]:4000
Així conclou el nostre tutorial. Benvingut a Phoenix!