三月 1, 2016 | 後端和Drupal

哇,沒說不知道,快來使用Git輕鬆管理你的Drush版本

更新與設定環境其實也是個學問,如何架構出一個有彈性的Drupal作業,進來看看管理Drupal的Drush工具管理方法

[當 Drush 碰上 Git]

前言

使用 Drupal 這套強大的內容管理系統除了安裝好後進去點點滑鼠操作設定,還有一些功能、系統相關的操作像是安裝、更新模組、清除快取也常常發生,而你有沒有在要安裝與設定一大堆時想過

「要是可以一鍵安裝或設定這些就好了」

如果現在沒有這想法,玩久 Drupal 以後的你一定有!!

而在這領域的前輩也聽到這些聲音,開發出這款 Drupal 粉不能不知道的「Drush」指令操作工具。

先前我們也有寫過介紹安裝文章,可以參考「Drupal 的好朋友 Drush 外掛,讓你管理 Drupal 有一套Linux版Windows版

在這邊就不多說 Drush 他有多厲害拉!

今天要跟大家報告的是「怎麼無痛跟上 Drush 版本升級

我們都知道,只是想玩一個有趣的東西但每次都有「環境」這個可怕的前提要搞定,好不容易安裝好後又因為版本升級要再來,隨著需求不同,更有些連安裝方式也可能改變。

還好, Drush 不難安裝,但是

  • 要怎麼升級或是切換版本呢?

這些問題,本篇文章使用 Git 這套版本管理系統,搭配其功能「切換版本」來完成。

概念適用 Mac OS, Linux(以Ubuntu為例), Windows 三大作業系統,僅操作過程不盡相同。以下為使用Mac開發環境(PHP7)說明

安裝 Git

Mac OS版本:在 10.9 版本後於 App Store 安裝 XCode 就會一併安裝 git 服務了!(推薦使用此作法,隨著Mac工具檢測自帶升級)

Linux(Ubuntu)版本

輸入

apt-get update
apt-get install git -y

Windows版本

連線到: Git for Windows選擇對應版本下載即可!

更完整的安裝介紹可以參考熱心的協作者翻譯教學: 開始 Git 安裝教學

使用 Git 複製 Drush 專案

安裝好後,再來就是利用 Git 來把 Drush 專案原始碼複製到電腦上。

於終端機上輸入下列指令

mkdir ~/workspace -p 

在當前使用者目錄下建立 workspace 的資料夾

cd ~/workspace

切換資料夾至 workspace

git clone https://github.com/drush-ops/drush.git

複製 Drush 專案原始碼至 workspace 中,畫面如下

cd drush

進入複製下來的 Drush 資料夾會看到如下圖檔案列表

使用 PHP Composer 套件管理補足 Drush 相依套件

因每個人的環境不同,不一定有安裝這套件,所以請先於終端機上輸入測試指令

which composer

有出現結果代表全域下的設定沒問題,可以開始操作(略過本段下面安裝說明)。

若如圖無反應

則參考官方說明文件或是一樣熱血協作者翻譯的資料來進行各作業系統上的安裝。

Mac 與 Linux 通用安裝法如下(在 workspace 目錄下操作)

cd ~/workspace

於終端機上輸入:

php -r "readfile('https://getcomposer.org/installer');" | php -- --filename=composer

即可採預設安裝方式完成。

假設厲害的你已經完成到這步了,那接下來請再回到 Drush 目錄

cd ~/workspace/drush

輸入安裝相依套件的指令

composer install
  • 若使用上面方式安裝的話指令如下
../composer install

就可以看到他在更新相依函式庫囉!

測試驗收

上面安裝完成後在目錄下輸入

drush --version

來看看版本

是目前最新的 Drush 8

來試試切換版本吧!

輸入指令

git checkout 7.x

再看一次版本

已經變成 Drush 7 版囉!

特別注意: Drush的使用與 PHP 版本有關,發生錯誤時請檢查環境配置是否完整,參考如圖支援度

結語

如上面教學,操作完後就可以用指令方式切換版本,但僅是切換版本還不是這麼的完整!

若有發布更新或想知道有沒有更新的時候可以在 drush 目錄中輸入指令

git pull

使用 Git 更新專案,並重新下指令

../composer install

來更新相依函式庫

如此一來,就可以輕鬆跟上 Drush 的腳步囉~

註:版本的切換列表可以參考 Github 專案旁的 Branch ,checkout 版本的數字如圖顯示。

這種彈性若需求只有更新的話,你可能會說太麻煩,官方介紹過更新的方法,但是這種切換版本的做法是可以確保在同一台伺服器上卻擁有不同版本 PHP 與 Drupal 的環境也能得到最穩定的管理哦!

我們聖誕老人Drupal技術團隊以凡事都要最彈性的思維出發,分享給大家~

有任何問題都歡迎提出,我們一起來進步吧!