聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

十一月 14, 2015

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» Laravel Homestead 支援 MySQL 5.7 和 Node 5.0

Laravel PHP Framework

昨天半夜看到 Laravel News 發佈支援 MySQL 5.7 和 Node 5.0 的消息,作者已經將 Homestead Vagrant box 更新上最新版了,如果你是用 PHP7 版本,請更新到 0.1.1 (laravel/homestead-7 branch),如果非用 PHP 5.7 請更新到 0.3.3 版本,此 Box 更新兩個項目,就是支援 MySQL 5.7 版本,及 NodeJS 5.0 版本,已經非常新的版號,透過底下指令就可以更新 Local 端的 Box Image:

$ vagrant box update

MySQL 5.7 版本支援了 JSON Format 真是太令人振奮了,另外此 Box 也是為了將來要釋出 Laravel 5.2 版本搭配用。最後補上升級後版本截圖

Screen Shot 2015-11-14 at 2.41.31 PM

七月 27, 2015

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» Laravel Homestead 2.1.5 版本將不再刪除舊有資料庫

Laravel PHP Framework

Laravel Homestead 提供一套虛擬機器,讓開發者可以快速將 Laravel 環境架設起來。在 2.1.5 版本以前,要新增新的 Site 都會透過修改 yaml 設定檔後,直接下 homestead provision 來重新啟動 VM,問題就來了,此指令會將現有的 Database 全部刪除,重先建立一次,這樣開發者就要重新跑 DB Migration 才有資料。此問題作者聽到了,所以在 2.1.5 版本作者拿掉 Drop Database 指令,而是透過 CREATE DATABASE IF NOT EXISTS 來取代原有指令 (下面程式碼),這樣開發者就不用擔心資料會被刪除。當然作者也很貼心,如果開發者想要清除整個資料庫,一樣可以透過指令 homestead destroy 來將整個 VM 刪除即可。

// 取代原有 mysql -uhomestead -psecret -e "DROP DATABASE IF EXISTS \`$DB\`";
mysql -uhomestead -psecret -e "CREATE DATABASE IF NOT EXISTS \`$DB\` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci";

詳細的資訊可以參考 official documentation,或參考最近修改的 commit 內容

十二月 1, 2014

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» CodeIgniter 搭配 Homestead 開發環境

CodeIgniter

HomesteadLaravel Framework 所提供出來的懶人安裝環境,大幅降低學習 Laravel 的門檻,大家都知道初學一套 Framework 最重要的是快速寫出 Hello world,如果初學者卡在環境都架設不來,那就更加不用接著學習 MVC 架構了,所以 Laravel 提供了 Homestead,不管你是用 Linux 或 Windows 都可以快速的把開發環境架設起來。相信很多人也從 CodeIgniter 跳往 Laravel 框架了,但是舊的網站還是要維護阿,所以這次透過 Laravel Homestead 一起來把 CodeIgniter 開發環境無痛架設起來,省去新人安裝 Nginx + PHP + MySQL 的時間。

這次直接用之前在成功大學電算中心講課的專案來搭配 Homestead,專案為 CodeIgniter-App,如果尚未安裝 Homestead 指令,可以直接參考我上一篇教學 Laravel Homestead 2.0 介紹,接下來我們一步一步安裝,架設環境為 Debian 7.4。

設定 Homestead.yaml

先將 CodeIgniter-App 程式碼下載到 /home/git 目錄,此目錄可以任意指定

$ git clone https://github.com/appleboy/CodeIgniter-App.git /home/git/CodeIgniter-App

打開 ~/.homestead/Homestead.yaml,原版您的 Laravel 專案設定如下

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: ~/.ssh/id_rsa.pub

keys:
  - ~/.ssh/id_rsa

folders:
  - map: /home/appleboy/newProject
    to: /home/vagrant/Code

sites:
  - map: homestead.app
    to: /home/vagrant/Code/public

databases:
  - homestead

variables:
  - key: APP_ENV
    value: local

這次增加 CodeIgniter 專案如下

folders:
  - map: /home/appleboy/newProject
    to: /home/vagrant/Code
  - map: /home/git/CodeIgniter-App
    to: /home/vagrant/codeigniter-app

sites:
  - map: homestead.app
    to: /home/vagrant/Code/public
  - map: codeigniter.app
    to: /home/vagrant/codeigniter-app/public

databases:
  - homestead
  - app

這裡可以發現增加了一組 folders、sites 和 databases,這樣就設定完成了

啟動 Homestead

完成後直接透過底下指令來產生相對應設定

$ homestead up --provision

注意的是,如果之前的 Laravel 專案資料庫存在的話,執行 --provision 則會砍掉 homestead 資料庫,然後重新建立新的,所以這邊建議執行 --provision 之前,先把舊的 database 拿掉會比較好。或者是要把初始化資料寫到 after.sh 內也是可以的。

#!/bin/sh

# If you would like to do some extra provisioning you may
# add any commands you wish to this file and they will
# be run after the Homestead machine is provisioned.

mysql -uhomestead -psecret app < /home/vagrant/codeigniter-app/sql/app.sql

增加 host

打開 /etc/hosts 增加新的 domain

172.21.117.2 homestead.app
172.21.117.2 codeigniter.app

最後打開瀏覽器 http://codeigniter.app:8000 就可以看到結果了喔

上述的 CodeIgniter-App 專案可以參考 https://github.com/appleboy/CodeIgniter-App

九月 11, 2014

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» Laravel Homestead 開始支援 HHVM

Laravel PHP Framework

Laravel News 看到這篇 Laravel Homestead – Now with HHVM,也就是官方 Homestead 開始支援 HHVM,現在可以直接透過底下指令升級 Box:

$ vagrant box update

版本會從 0.1.8 升級到 0.1.9,升級過程需要一段時間,最後要啟用 HHVM 服務,請在 Homestead.yaml 加入底下設定

sites:
  - map: homestead.app
    to: /home/vagrant/Code/Laravel/public
    hhvm: true

不用煩惱架設 HHVM 環境了,對開發者真是一大幅音。

九月 5, 2014

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» 快速安裝 Laravel Homestead 環境

Laravel PHP Framework

在看本篇安裝教學前可以參考翻譯完成的 Laravel Homestead,此篇會紀錄如何在 Ubuntu 底下快速架設 Laravel 環境,對於一般新手而言,剛開始安裝 Laravel 開發環境一定會遇到許多問題,為了解決開發環境,Laravel 推出 Homestead 搭配 Vagrant Box,讓初學者不用為環境問題而煩惱,減少浪費時間在架設 Laravel。簡單來說 Laravel Homestead = Vagrant + VirtualBox + Laravel 安裝包。底下簡單幾個步驟就可以完成 Laravel 開發環境。

步驟一:事前準備

由於 Laravel Homestead 是由 Vagrant + VirtualBox 組成,所以環境請先安裝好這兩個套件

假如您是 Windows 開發環境,請多安裝 Bash Tool,完成後你需要透過 Vagrant 下載封裝好的安裝包

$ vagrant box add laravel/homestead

由於檔案還蠻大的,需要一段時間,請耐心等候

步驟二: 安裝 Homestead 程式碼

此部份為 Vagrant 的設定檔,請直接抓取官方 Homestead 程式碼

$ git clone https://github.com/laravel/homestead.git Homestead

步驟三: 設定虛擬目錄

此步驟為設定開發虛擬目錄及相對應主機名稱,請先打開 Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

variables:
    - key: APP_ENV
      value: local

這邊需要注意的就是 folderssites 兩項設定,假設今天你有兩個 Laravel 網站需要設定,環境相關路徑如下

# 網站一
主目錄: /home/git/laravel_1
public 目錄: /home/git/laravel_1/public
網域名稱: a.tw
# 網站二
主目錄: /home/git/laravel_2
public 目錄: /home/git/laravel_2/public
網域名稱: b.tw

則我們在 Homestead.yaml 內則設定如下

folders:
    - map: /home/git/laravel_1
      to: /home/vagrant/laravel_1
    - map: /home/git/laravel_2
      to: /home/vagrant/laravel_2

sites:
    - map: a.tw
      to: /home/vagrant/laravel.tw/public
    - map: b.tw
      to: /home/vagrant/laravel.tw/public

步驟四: 設定主機名稱

設定連接虛擬目錄的網域名稱,請打開 /etc/hosts 加入兩行設定

127.0.0.1 a.tw
127.0.0.1 b.tw

之後就可以透過這兩個虛擬網域來開發了

步驟五: 啟動 Vagrant up

最後請在 Homestead 目錄下執行 vagrant up 啟動訊息可以發現底下 port mapping

default: 80 => 8088 (adapter 1)
default: 3306 => 33060 (adapter 1)
default: 5432 => 54320 (adapter 1)
default: 22 => 2222 (adapter 1)

如果 port 已經被佔用,請修改 scripts/homestead.rb

# Configure Port Forwarding To The Box
config.vm.network "forwarded_port", guest: 80, host: 8088
config.vm.network "forwarded_port", guest: 3306, host: 33060
config.vm.network "forwarded_port", guest: 5432, host: 54320

如果你要啟動時更新系統套件及 composer 話請加入底下程式碼

# Copy The Bash Aliases
config.vm.provision "shell" do |s|
  s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases"
end

改成

# Copy The Bash Aliases
config.vm.provision "shell" do |s|
  s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases"
  s.inline = "sudo apt-get update"
  s.inline = "sudo composer self-update"
end

透過 vagrant ssh 可以登入系統,目前系統預設環境已經升級到 PHP 5.6.0 了,感謝 Laravel 作者更新 Box。

PHP 5.6.0-1+deb.sury.org~trusty+1 (cli) (built: Aug 28 2014 14:55:42) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

如果你的 Hoststead 並非是 5.6.0 環境,請直接透過 vagrant box update 更新 Box。最後補上啟動截圖

快速安裝 Laravel Homestead 環境

support:

biggo.com.tw

biggo.sg

A Django site.