iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 6
1

今天的內容原本是昨天的後半部
但介紹完Elixir之後,如果把Phoenix環境與概述講完
感覺篇幅有點略長,安裝切一半又很奇怪
不如整篇作為一個獨立的文章,方便有興趣嘗試Phoenix的朋友做參考

1. 安裝Elixir

要進入Phoenix之前,首先我們需要安裝Elixir
安裝的步驟相當簡單
假設你在MAC環境而且已經有使用Homebrew

$ brew update
$ brew install elixir

如果是其他環境的話,可以參考這邊

安裝完Elixir以後
你就可以使用iex,類似ruby的irb
也可以在這邊練習Elixir語法

$ iex
Erlang/OTP 20 [erts-9.0.5] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.5.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

在進入iex時可以看到安裝的版本
以我為例是Elixir 1.5.1
如果你只是單純想查詢版本,可以用-v

$ elixir -v
Erlang/OTP 20 [erts-9.0.5] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.5.1

建議至少在1.4以上

安裝完Elixir後,理論上你也裝好Erlang了
如果你貼上這行

$ erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell
"20"

他會回傳你目前的Erlang版本,以我為例是OTP 20
你的版本應該大於等於20,請確保至少大於18

凡事總有意外,如果你沒有順利安裝好Erlang
可以參考官方指南

2. 安裝Hex

在安裝Phoenix之前,我們還需要先安裝Hex
他是Elixir 的外掛管理器,可以理解為ruby的bundler

$ mix local.hex --force

注意到我們用了一個陌生的指令mix
這個是Elixir 的命令工具,提供許多方便的功能,
比如說新增元件、編譯、測試等等

3. 安裝Phoenix

前面鋪陳了這麼多,終於要安裝Phoenix了

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

4. 安裝Node.js (optional)

Phoenix 預設使用 brunch.io 来管理靜態資源,
而 brunch 是基於 Node.js 開發的,所以如果你會用到靜態前端
就需要安裝node
但假如你只需要開發API,不使用任何js, css等靜態資源
就可以略過

$ node --version
v8.0.0

確認一下版本大於5.0.0
如果你需要安裝,請參考官方說明

5. 安裝PostgreSQL (optional)

Phoenix 預設使用PostgreSQL,當然你也可以選擇MySQLMongoDB
都有對應的支援

6. 安裝inotify-tools (optional)

只有Linux使用者需要安裝,Phoenix即時更新功能會用上
Mac與window用戶可以略過

7. 建立專案

如果你照著步驟做,到這邊環境已經安裝完成
我覺得不算太困難
現在我們馬上來新增第一個Phoenix專案吧!

$ mix phx.new hello

Phoenix就會在當前的路徑創造一個名稱為hello的專案
如果你想要指定資料庫,可以加上參數,例如:

$ mix phx.new hello --database mysql

當然,如果你的專案已經創建好了
你依然可以在裡面的設定檔更改資料庫

在建立的過程中,他會問你要不要安裝相關的外掛

Fetch and install dependencies? [Yn]

預設是Y,所以大膽的Enter按下去就可以了(除非你很確定你不需要)
安裝完後,你會看到下面的提示訊息:

We are all set! Go into your application by running:

    $ cd hello

Then configure your database in config/dev.exs and run:

    $ mix ecto.create

Start your Phoenix app with:

    $ mix phx.server

You can also run your app inside IEx (Interactive Elixir) as:

    $ iex -S mix phx.server

這邊基本上就說明了接下來的步驟
同時也是幾個常用的指令
首先cd進去剛剛新增好的專案
用vim或是你慣用的編輯器把config/dev.exs這個檔案打開
滑到最下面資料庫設定的部分:

# Configure your database
config :hello, Hello.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "",
  password: "",
  database: "hello_dev",
  hostname: "localhost",
  pool_size: 10

如果你是使用預設的PostgreSQL,就會看到跟上面一模一樣的預設
把你本地環境的username與password複製貼上然後存檔
接著就可以執行

$ mix ecto.create

用rails理解就是:

$ rake db:create

ecto是Phoenix使用的ORM,後面會介紹到
資料庫好了以後,就可以開啟伺服器了

$ mix phx.server

打開瀏覽器輸入 http://localhost:4000
如果一切順利,你會看到Phoenix的歡迎畫面
Welcome to Phoenix

control + c可以離開


參考資料:
https://www.gitbook.com/book/mydearxym/phoenix-doc-in-chinese
https://github.com/chenxsan/PhoenixFramework/blob/master/00-prepare.md


上一篇
比較Phoenix之前,先來聊聊Elixir
下一篇
Phoenix起步走:新增頁面與路由
系列文
新時代的網頁框架比較-- 淺談Rails、Django、Phoenix、Laravel31

尚未有邦友留言

立即登入留言