# 安裝Ubuntu
在Vagrant的術語中,安裝一個系統(以及相應的應用)是一個創建一個“盒子”(box)的過程。所以,我們說要安裝Ubuntu,實際上就是創建一個Ubuntu的盒子,然后在這個盒子中,再進一步地進行配置和應用的安裝。
要創建一個盒子,我們需要一個基礎。 針對Vagrant,已經有太多現成的原始“盒子”存在。在本書中,我們用的是“ubuntu/trusty”。
## 1.3.1 下載盒子
我們先建立一個目錄,用來存放我們以后要用的經過定制的盒子。比如在`f:\vagrant_env`這個目錄。
然后我們訪問[http://www.vagrantbox.es/](http://www.vagrantbox.es/) 這個站點,尋找我們需要使用的原始盒子:

我們要用的是`Ubuntu Server Trusty 14.04 (Virtual Box)`這個盒子。根據給出的下載鏈接,我們先將這個“盒子”下載,保存在一個臨時目錄中(比如說:`f:\temp`下的`\trusty64.box`)。
然后,進入`f:\vagrant_env`目錄,建立一個子目錄,名字是任意的,但是最好具有指示性,比如:`f:\vagrant_env\remote`,表示這里是一個“遠程”的系統。
在`remote`目錄中,運行如下命令:
~~~
vagrant box add "trusty64" "f:\temp\trusty64.box"
~~~
這將我們剛才下載的那個原始盒子以"`trusty64`"的名字注冊在Vagrant的環境中了。
然后運行下面這個命令:
~~~
vagrant init trusty64
~~~
開始初始化我們自己的Vagrant/Ubuntu環境。
初始完畢后,當前目錄(`f:\vagrant_env\remote`)下會多出一些文件,其中最重要的是`Vagrantfile`文件。它是我們這個定制盒子的配置文件。
## 1.3.2 配置我們的盒子
通過對`Vagrantfile`文件的修改,我們可以配置我們的盒子。
### 1.3.2.1 修改我們盒子的IP
我們可以將盒子認為是一個操作系統,一臺虛擬的電腦。我們對這個盒子的操作除了某些特定操作之外,必須通過SSH登陸到該系統后方能進行。所以我們需要給這臺“電腦”分配一個IP地址。
Vagrant支持三種方式來進行SSH登錄:
* 端口轉發。我們可以直接SSH到`localhost:2222`來訪問虛擬機的`22`端口,從而登錄到虛擬機;
* 私有網絡。我們分配一個與我們Windows機器所在網段不同的網段IP。這也是本書所用的方法。比如,我的Windows機器的IP是`10.0.0.2`,那么給虛擬機分配一個`192.168.2.100`就是一個不錯的選擇。這將保證,該虛擬機只有Windows本機可以訪問,而內網中別的電腦將無法訪問。而我們可以通過SSH到`192.168.2.100:22`來完成登錄。
* 共有網絡。此時我們分配一個與我們Windows機器所在網段相同的網段的IP。
要將我們的虛擬機設置為私有網絡,我們修改`Vagrantfile`中如下的幾行:
~~~
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network :private_network, ip: "192.168.2.100"
~~~
### 1.3.2.2 映射Windows目錄到虛擬機目錄
通常,我習慣在Windows下進行代碼的開發。如果我們映射這個工作目錄到Vagrant虛擬機中,我們就省去了文件拷貝、同步的麻煩。在任何一端對代碼進行修改,在另一端就會立刻反應(因為本來就是同一個文件)。
缺省情況下,Vagrant會映射我們在Windows中啟動Vagrant的目錄(`f:\vagrant_env\remote`)到Vagrant虛擬機中的`/home/vagrant`目錄。這兩個目錄是等效的。
我們還可以增加更多的Windows目錄,將其映射到虛擬機中。
## 1.3.3 啟動我們的虛擬機
一切配置完成后,我們就可以啟動我們的虛擬機:
~~~
vagrant up
~~~
經過一段稍顯冗長的過程后,我們的Vagrant虛擬機已經啟動。我們可以簡單地在我們的Windows機器中`ping 192.168.2.100`,來確定該虛擬機已經啟動。
## 1.3.4 進入虛擬機系統
我們所啟動的虛擬機,已經安裝好了我們之前選擇的`Ubuntu Server Trusty 14.04`。我們可以使用`putty`或其它第三方程序用SSH的方式安全地登錄虛擬機。
缺省情況下,Vagrant盒子的超級用戶是`vagrant`,登錄密碼是`vagrant`。
讓我們看看登錄后的界面吧:

## 1.3.5 在開始下一步之前
現在是一個很好的時機,對我們這個剛建立好的虛擬機進行一些維護工作。比如,更新一下`apt-get`的源(將其改為使用國內的倉庫),對系統進行一次全面的更新,安裝一些必要的支持軟件等等。
## 1.3.6 停止虛擬機
我們可以用`vagrant halt`來關閉虛擬機。虛擬機關閉后,將不能接受任何指令。
- 引言
- 1 LAMP
- 1.1 安裝虛擬機
- 1.2 安裝Vagrant
- 1.3 安裝Ubuntu
- 1.4 安裝Apache 2
- 1.5 安裝PHP
- 1.6 安裝MySQL服務器
- 1.7 最后的微調
- 1.8 設置一個虛擬主機
- 1.9 一個趁手的IDE
- 2 Symfony 3和重要構件
- 2.1 Symfony 3
- 2.2 Doctrine
- 2.3 Twig
- 2.4 Composer
- 3 Symfony重要概念
- 3.1 MVC
- 3.2 Bundle/包
- 3.3 Route/路由
- 3.4 Controller/控制器
- 3.5 Entity/實體
- 3.6 Repository/倉庫
- 3.7 Template/模板
- 3.8 Test/測試
- 4 藏書管理程序的結構
- 5 創建應用
- 5.1 建立版本管理
- 5.2 建立數據庫
- 5.3 應用結構
- 5.4 建立數據庫實體
- 5.5 樣本數據
- 5.6 路由
- 5.7 模板
- 5.8 開始編寫首頁
- 5.9 書籍詳情頁面
- 5.10 書籍列表頁面
- 5.11 書籍搜索
- 6 用戶和后臺
- 7 結語