Előfeltételek
1. lépés: Frissítse a rendszert
2. lépés: Telepítse az Erlangot
3. lépés: Telepítse az Elixirt
4. lépés: Telepítse a Phoenixet
5. lépés: Telepítse a Node.js fájlt (opcionális)
6. lépés: Telepítse a PostgreSQL-t
7. lépés: Telepítse az inotify-tools-t
8. lépés: Hozzon létre egy Phoenix alkalmazást
A Phoenix egy feltörekvő Elixir-alapú webfejlesztési keretrendszer. Úgy tervezték, hogy magas fejlesztési termelékenységet, gazdag funkciókat és erőteljes futásidejű teljesítményt biztosítson.
Ez az oktatóanyag bemutatja, hogyan telepítheti a Phoenixet egy Vultr CentOS 7 kiszolgálópéldányra fejlesztési célból.
Előfeltételek
Mielőtt folytatná, feltételezem, hogy rendelkezik:
- Új Vultr CentOS 7 kiszolgálópéldány üzembe helyezése.
- Nem root sudo felhasználóként jelentkezett be ebbe a CentOS 7 rendszerbe.
1. lépés: Frissítse a rendszert
sudo yum install epel-release
sudo yum update
sudo reboot
2. lépés: Telepítse az Erlangot
Először is telepítenie kell az Erlang-t a rendszerére. A Phoenix egy Elixir programozási nyelven írt keretrendszer, és minden Elixir alapú alkalmazást le kell fordítani Erlang bájtkódra, mielőtt végrehajtható lenne.
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
Az Erlang telepítését a következőképpen erősítheti meg:
erl
Ez a parancs az Erlang shell-be viszi. Az Erlang shell indításakor a következő kimenetet fogja látni.
Erlang/OTP 18 [erts-7.3] [source-d2a6d81] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.3 (abort with ^G)
1>
Nyomja meg Ctrl+Ckétszer az Erlang shellből való kilépéshez.
3. lépés: Telepítse az Elixirt
Mivel a CentOS 7 rendszer YUM adattárában található Elixir verziója meglehetősen elavult, az Elixir legújabb verziójának telepítéséhez használja a hivatalos, előre összeállított Elixir archívumot.
Töltse le és csomagolja ki a legújabb Elixir előrefordított archívumot:
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
Az Elixir most telepítve van a rendszerére. Az Elixir parancsokat az egyes Elixirrel kapcsolatos parancsok elérési útjának megadásával futtathatja, például:
/usr/bin/elixir/bin/elixir -v
Ez a parancs megmondja az Elixir verzióját a rendszeren.
A kényelem kedvéért hozzáadhatja az Elixir bin elérési útját (a telepítendő node.js bin elérési útjával együtt) a PATHkörnyezeti változóhoz:
sudo vi /etc/profile
A fájl végéhez fűzze a következő sort:
export PATH="$PATH:/usr/bin/elixir/bin:/usr/bin/node-v6.1.0-linux-x64/bin"
Mentés és kilépés:
:wq
Profil újratöltése:
source /etc/profile
Mostantól futtathat egy Elixirrel kapcsolatos parancsot anélkül, hogy megadná a teljes elérési utat, például:
elixir -v
Most telepítse a Hex csomagkezelőt a mixparancs futtatásával azonos módon:
cd ~
mix local.hex
Válaszoljon Ya telepítési folyamat során.
4. lépés: Telepítse a Phoenixet
A Phoenix telepítéséhez használja a következő parancsot:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Válaszoljon Ya telepítési folyamat során.
5. lépés: Telepítse a Node.js fájlt (opcionális)
Ha a brunch.io-t, a Phoenix alapértelmezett építőeszközét szeretné használni statikus eszközök (javascript, css stb.) fordításához, telepítenie kell a Node.js-t (>= 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/
Ne feledje, hogy a Node.js elérési útja a 3. lépésben került hozzáadásra a PATH környezeti változóhoz. A Node.js telepítését ezzel a paranccsal tesztelheti:
node -v
6. lépés: Telepítse a PostgreSQL-t
Alapértelmezés szerint a Phoenix a PostgreSQL-t használja az alkalmazások konfigurálásához. CentOS 7 rendszeren a PostgreSQL a YUM használatával telepíthető:
sudo yum install -y postgresql-server
sudo postgresql-setup initdb
Indítsa el a postgresqlszolgáltatást:
sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service
Állítson be jelszót az alapértelmezett "postgres" PostgreSQL felhasználóhoz:
sudo -u postgres psql
A PostgreSQL shellben (miután a prompt a következőre változik postgres=#) állítson be jelszót a "postgres" számára:
\password postgres
Írja be postgreskétszer a jelszót , amely a Phoenix által preferált.
Végül használja a következő parancsot a PostgreSQL-héjból való kilépéshez.
\q
Állítsa be az adatbázis felhasználói hitelesítési módszerét:
sudo vi /var/lib/pgsql/data/pg_hba.conf
Keresse meg a következő részt:
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Módosítsa az IPv4 helyi kapcsolatok hitelesítési módszerét md5-re:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Mentés és kilépés:
:wq
Indítsa újra a postgresqlszolgáltatást:
sudo systemctl restart postgresql.service
A következő paranccsal telepítse a szükséges "inotify-tools" összetevőt:
sudo yum install inotify-tools
8. lépés: Hozzon létre egy Phoenix alkalmazást
Tegyük fel, hogy egy Phoenix alkalmazást szeretne létrehozni a könyvtárban ~/phoenix_project_1:
mix phoenix.new ~/phoenix_project_1
Válaszoljon Ya folyamat során a függőségek lekéréséhez és telepítéséhez.
Ez a parancs létrehozza az alkalmazás könyvtárát ~/phoenix_project_1. Lépjen be a könyvtárba, és hozzon létre egy adatbázist:
cd ~/phoenix_project_1
mix ecto.create
Válasz Ya "rebar" telepítésére az első adatbázis-létrehozás során.
Indítsa el az alkalmazást a következő paranccsal:
mix phoenix.server
Az aktuális SSH-kapcsolat életben tartása közben kezdeményezzen egy másik SSH-kapcsolatot, és módosítsa a tűzfalszabályokat, hogy hozzáférést biztosítson az alkalmazáshoz:
sudo firewall-cmd --zone=public --permanent --add-port=4000/tcp
sudo firewall-cmd --reload
Végül egy webböngészővel keresse fel az alkalmazást a következőkről:
http://[your-server-IP]:4000
Ezzel az oktatóanyagunk véget ért. Üdvözöljük a Phoenixben!