鍍金池/ 教程/ PHP/ 虛擬化技術(shù)
依賴管理
安全
測試
使用模板
開發(fā)實(shí)踐
入門指南
服務(wù)器與部署
社區(qū)
語言亮點(diǎn)
錯誤與異常
虛擬化技術(shù)
資源
文檔撰寫
數(shù)據(jù)庫
依賴注入
緩存
代碼風(fēng)格指南

虛擬化技術(shù)

在開發(fā)和線上階段使用不同的系統(tǒng)運(yùn)行環(huán)境的話, 經(jīng)常會遇到各種各樣的 BUG, 并且在團(tuán)隊(duì)開發(fā)的時候, 讓所有成員都保持使用最新版本的軟件和類庫, 也是一件很讓人頭痛的事情.

如果你是在 Windows 下開發(fā), 線上環(huán)境是 Linux (或者別的非 Windows 系統(tǒng)) 的話, 或者團(tuán)隊(duì)協(xié)同開發(fā)的時候, 建議使用虛擬機(jī).

除了大家熟知的 VMware 和 VirtualBox 外, 還有很多工具可以讓你快速, 輕松的用上虛擬環(huán)境.

Vagrant 簡介

Vagrant 可以讓你使用單一的配置信息來部署一套虛擬環(huán)境, 最后打包為一個所謂的 box (就是已經(jīng)部署好環(huán)境的虛擬機(jī)器). 你可以手動來安裝和配置 box, 也可以使用自動部署工具, 如 Puppet 或者 Chef .

自動部署工具可以讓你快速部署一套一模一樣的環(huán)境, 避免了一大堆的手動的命令輸入, 并且允許你隨時刪除和重建一個全新的 box, 虛擬機(jī)的管理變得更加簡單.

Vagrant 還可以在虛擬機(jī)和主機(jī)上分享文件夾, 意味著你可以在主機(jī)里面編輯代碼, 然后在虛擬機(jī)里面運(yùn)行.

需要更多的幫助?

下面是一些其他的軟件, 可以幫助你更好的使用 Vagrant:

  • Rove: 使用 Chef 自動化安裝一些常用的軟件, PHP 包含在內(nèi).
  • Puphpet: 簡單的 Web 圖形界面用來生成部署 PHP 環(huán)境的 Puppet 腳本, 此項(xiàng)目不僅可以用在開發(fā)上, 也可以在生產(chǎn)環(huán)境中使用.
  • Protobox: 是一個基于 vagrant 的一個層, 還有 Web 圖形界面, 允許你使用一個 YAML 文件來安裝和配置虛擬機(jī)里面的軟件.
  • Phansible: 提供了一個簡單的 Web 圖形界面, 用來創(chuàng)建 Ansible 自動化部署腳本, 專門為 PHP 項(xiàng)目定制.

Docker 簡介

除了 Vagrant, Docker 是另一個實(shí)現(xiàn)生產(chǎn)和開發(fā)環(huán)境統(tǒng)一的非常棒的方案.

Docker 為各種應(yīng)用程序提供了 Linux 容器.

你可以安裝 Docker 鏡像, 如 MySQL 和 PostgreSQL 等, 并且不會污染到你的本地機(jī)器, 可以看下 Docker Hub Registry, 在這里你可以找到你想要的, 提前配置好的, 允許你簡單幾部就能運(yùn)行起來的 Linux 容器.

例子: 在 Docker 里面運(yùn)行 PHP 應(yīng)用

在你成功 安裝 Docker 后, 你只需要一步就可以安裝 Apache + PHP.

下面的命令, 會下載一個功能齊全的 Apache 和 最新版本的 PHP, 并會設(shè)置 WEB 目錄 /path/to/your/php/files 運(yùn)行在 http://localhost:8080:

{% highlight console %}
docker run -d --name my-php-webserver -p 8080:80 -v /path/to/your/php/files:/var/www/html/ php:apache
{% endhighlight %}

在使用 docker run 命令以后, 如果你想停止, 或者再次開啟容器的話, 只需要執(zhí)行以下命令:

{% highlight console %}
docker stop my-php-webserver
{% endhighlight %}

{% highlight console %}
docker start my-php-webserver
{% endhighlight %}

了解更多關(guān)于 Docker 的信息

The commands mentioned above only show a quick way to run an Apache web server with PHP support but there are a lot more things that you can do with Docker.

上面的命令能讓你輕松使用 Apache + PHP 環(huán)境, 然而, Docker 還提供了好多別的命令, 例如, 作為 PHP 程序員, 一個最重要的事情, 是讓你的 Web Server 和數(shù)據(jù)庫鏈接起來, 怎么實(shí)現(xiàn)可以仔細(xì)看下 Docker User Guide.

上一篇:數(shù)據(jù)庫下一篇:社區(qū)