Ruby 是一種強大的程式語言。它是一種直譯式、高階且通用的語言,融合了多種程式設計範式。Ruby 的創作者松本行弘(Yukihiro Matsumoto)融合了他最喜歡的幾種程式語言(如 Perl、Ada、Lisp、Eiffel、Smalltalk 等)的優點,創造了 Ruby。用他自己的話來說,他旨在讓 Ruby 「更自然,而非簡單”.
Ruby 的流行很大程度上源於 Ruby on Rails。它是一個建立在 Ruby 之上的強大網頁框架。它作為眾多網頁應用程式的後端,例如 Airbnb、Spotify、GitHub、SoundCloud 等。Ruby on Rails 的哲學是提供一個直觀的框架,以加速建置穩健且高效能的網頁。
作為一個網頁框架,Ruby on Rails 可以與流行的資料庫引擎協同工作,例如 SQLite, MySQL/MariaDB,以及 PostgreSQL。本指南將展示如何建置一個使用 MySQL 作為其資料庫引擎的 Ruby on Rails 應用程式基礎。
先決條件
- 本指南中演示的所有步驟均在 Ubuntu 21.04 上進行。深入了解 在此處設定 Ubuntu 伺服器.
- 我們還將快速演示如何安裝和設定 MySQL 伺服器。如需更多資訊,請參閱這篇關於 設定 MySQL.
- 的指南。至於安裝和管理 Ruby,我們將使用 rbenv。這是一個旨在幫助管理 Ruby 環境的工具。與 RVM, rbenv 相比,有其不同之處.
步驟 1:安裝與設定 MySQL
MySQL 將作為我們 Ruby on Rails 應用程式的資料庫後端。假設您尚未安裝和設定 MySQL,請跟著步驟操作。啟動終端機並更新 APT 快取:
|
1 |
sudo apt update |
然後,安裝 MySQL 元件:
|
1 |
sudo apt install install mysql-server mysql-client libmysqlclient-dev |
安裝完成後,執行以下 MySQL 腳本。它將進行快速的安裝後設定:
|
1 |
sudo mysql_secure_installation |
該腳本會提出多個問題。完成這些步驟以結束初始設定:
-
額外步驟
以下步驟是選填的,只有在稍後的教學中,當 Ruby on Rails 無法連線到 MySQL 伺服器時才需要執行。它將 MySQL 中的 root 使用者設定為使用 mysql_native_password 以允許傳統的密碼登入。存取 Ubuntu 上的 root 帳戶:
|
1 |
sudo su |
現在,啟動 MySQL root shell(不需密碼檢查):
|
1 |
mysql -u root --skip-password |
接下來,執行以下查詢以變更密碼並將 mysql_native_password 設定為驗證方法:
|
1 2 |
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<password>'; FLUSH PRIVILEGES; |
步驟 2:安裝與設定 Ruby 和 Ruby on Rails
我們的資料庫伺服器已準備好投入生產。我們現在需要安裝 Ruby。如前所述,我們將使用 rbenv 作為我們專案的 Ruby 版本管理器。Ruby on Rails 可作為 Ruby gem 取得。
-
安裝 rbenv
Ruby 管理器 rbenv 可直接從官方 Ubuntu 套件伺服器取得。對於其他發行版,請查看 official rbenv installation guide.
立即啟動終端機並安裝它:
|
1 |
sudo apt install rbenv |
接下來,我們必須將 rbenv 整合 至預設的 shell。執行以下 rbenv 指令:
|
1 |
rbenv init |
如輸出所示,對於 bash,我們需要將該行包含在本地的 bashrc 檔案中。在不深入探討細節的情況下, bashrc 檔案會在使用者每次以互動模式開啟新的 shell 時載入。在文字編輯器中開啟該檔案並新增以下文字:
|
1 |
nano ~/.bashrc |
儲存檔案並關閉編輯器。建議重新啟動終端機以使變更生效。或者,您可以將 bashrc 檔案重新載入到目前的 shell 中:
|
1 |
source ~/.bashrc |
接下來,我們將安裝一個 rbenv 外掛程式,以提供對 rbenv install 指令的支援。此外掛程式可以直接從 rbenv GitHub 儲存庫取得。執行以下指令:
|
1 2 |
mkdir -p "$(rbenv root)"/plugins git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build |
若要測試我們的 rbenv 設定,請執行 rbenv-doctor 腳本:
|
1 |
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash |
它將檢查各種元件,並回報一切是否正常。
-
安裝 Ruby
一旦 rbenv 設定完成後,我們就可以準備安裝 Ruby 了。以下指令將列出所有可用的 Ruby 版本:
|
1 |
rbenv install -l |
輸出內容會有點長,因此建議將其傳遞給 more 或 less 以便於瀏覽。該清單還包含各種 Ruby 的建置版本。在本指南中,我們將專注於最新的官方 Ruby 建置版本。在撰寫本文時,它是 Ruby v3.0.3。
現在,安裝 Ruby:
|
1 |
rbenv install <ruby_version> |
下一個指令將把已安裝的 Ruby 宣告為適用於所有應用程式的全域版本:
|
1 |
rbenv global <ruby_version> |
驗證 Ruby 安裝:
|
1 |
ruby --version |
-
安裝 Ruby on Rails
此網頁框架可作為 Ruby 的 gem 使用。雖然 Ruby on Rails 可以直接從 Ubuntu 套件伺服器取得,但將其作為 gem 安裝可提供更大的彈性。
首先,安裝 gem Bundler。這是一個用於解析 gem 相依性的工具。Rails 依賴它:
|
1 |
gem install bundler |
執行下一個指令將把最新穩定版本的 Ruby on Rails 安裝為 gem:
|
1 |
gem install rails |
如果您想安裝特定版本,則指令結構如下所示:
|
1 |
gem install rails <rails_version> |
安裝好 gem 之後,執行以下指令:
|
1 |
rbenv rehash |
Ruby 管理器 rbenv 的運作方式是為指向目前啟用之 Ruby 版本檔案的 shim 建立專用目錄。 rehash 子指令會告訴 rbenv 在該目錄中維護 shim,以符合伺服器上每個已安裝 Ruby 版本的每個 Ruby 指令。每當您安裝新版本的 Ruby 或提供類似 Rails 指令的 gem 時,都應該執行此指令。
驗證 Rails 安裝:
|
1 |
rails -v |
步驟 3:安裝 MySQL gem
若要連線到 MySQL 伺服器,Rails 需要一個配接器。我們將使用 mysql2 gem 來提供此功能。安裝 mysql2 gem:
|
1 |
gem install mysql2 |
步驟 4:建立與設定新的 Rails 應用程式
-
建立範例應用程式
到目前為止,我們已經設定了建立 Rails 應用程式所需的所有必要元件。以下指令將為該應用程式建立一個專用目錄,並放置所有支援 MySQL 的必要檔案:
|
1 |
rails new <app_name> -d mysql |
-
設定 MySQL 連線
現在,我們需要輸入必要的 MySQL 資訊,以便 Rails 可以連線到資料庫並交換資料。預設情況下, Rails 會以 root 身分連線到 MySQL。開啟 Rails 資料庫設定檔:
|
1 2 |
cd <app_dir> nano config/database.yml |
向下捲動到以下區段,並輸入 MySQL 的 root 密碼。然後,儲存檔案並關閉編輯器。
-
套用資料庫變更
如果一切順利,Rails 現在應該能夠連線到 MySQL 並執行必要的資料庫作業。以下指令將建立必要的資料庫:
|
1 |
rake db:create |
步驟 5:測試設定
啟動 Rails 開發伺服器:
|
1 |
rails server --綁定=<server_public_ip> |
您應該能夠在以下網址存取歡迎頁面:
|
1 |
http://<server_public_ip>:3000 |
結語
在本指南中,我們已使用 rbenv、安裝了 Rails gem,並設定了一個範例 Rails 應用程式以連接到 MySQL 並將其用作資料庫引擎。這為擴充和集中式的網頁應用程式提供了一個極佳的骨架。
若要了解如何在 Ubuntu 20.04 上使用 RVM 安裝 Ruby on Rails,請參閱以下教學課程 在 Ubuntu 20.04 上使用 RVM 安裝 Ruby on Rails。若要了解如何使用 PostgreSQL 設定 Ruby on Rails,請參閱以下教學課程:使用 PostgreSQL 設定 Ruby on Rails.
祝您使用愉快!






















留言
目前尚無留言。成為第一個留言的人吧。