Laravel 的 Homestead 开发环境部署
2016-08-18 17:16
501 查看
https://phphub.org/topics/2
Laravel 努力在整个PHP开发过程中提供令人愉快的开发体验,当然也包括本地的开发环境。
首先明白以下几个概念
VirtualBox -- Oracle 公司的虚拟机软件, 能运行在当前大部分流行的系统上;
Vagrant 提供一种命令行接口, 允许自动化安装虚拟机, 并且因为是脚本编写成的
给共享虚拟机配置提供了可能, Homestead 正是构建在 Vagrant 之上;
Laravel Homestead 是官方预封装的一个 Vagrant Box,它是一台虚拟机的原型, 用来快速生产一个配置完整的服务器虚拟机, 运行在 VirtualBox 上.
Homestead 生产出来的虚拟机提供了一个完整的开发环境, 有了这个环境, 就不用再担心各种软件的设置会搞乱你的操作系统啦.
因为是虚拟机, 出现故障的时候, 可以在几分种内完成销毁和重建.
Homestead 能运行在所有的Windows、Mac和Linux上,它包含了Nginx、PHP 5.5、MySQL、Postgres、Redis、Memcached和你开发 Laravel应用程序需要的所有其它软件。
在多人协同开的情况下, Homestead 能用来统一开发环境, 让程序员把精力更集中的放在程序业务逻辑上, 免去了各种因为开发环境不一样而造成的混乱.
假设我们要开发一个项目, 项目的名字叫
首先在我们存放代码的地方
接下来咱们的操作都在此项目下进行
在这里下载并安装 VirtualBox , Vagrant .
直接下载 GUI 安装包安装就行.
Homestead 包括以下两个东西
一个 vagrant box 虚拟机, 里面软件什么都下载好了;
Github 代码库, 里面装载着 vagrant 的配置脚本, 用来自动化配置网络, 端口映射, 等一些开发时候用到的配置;
在文件夹下克隆 homestead 项目到本地
执行以下命令添加 box
https://vagrantcloud.com/laravel/homestead/version/8/provider/virtualbox.box
下载后执行以下命令, 修改
path.
根据你的情况修改 Homestead 项目里面文件 Homestead.yaml , 类似以下
修改本机的 hosts 文件, 允许通过自定义域名访问, 这个域名是在上面的
添加以下一行
以上配置正确的话会有类似以下输出
测试是否能成功连接, 虚拟机里的
浏览器访问 http://mytwitter.app:8000/ .
至此, 成功安装.
这时
可以在 dotfile 里面增加 alias 进行快速连接 vm:
这样以后直接使用
虚拟机了.
查看 php 版本
查看版本
vm 下命令行链接, 密码为
默认提供 homestead 数据库
顺便建数据库
本机连接 vm 里 mysql 方法是:
关于 vm 里面其他服务的 port 信息如下, 或请见 文档
Homestead box 里还默认安装了以下软件
Composer - php 的包管理器
Envoy - 一个远程任务执行工具, 用来管理远程服务器;
nodejs
gulp - 用来做自动化管理 css 和 js 等 assets 文件;
Codeception - 用作 BDD 测试
git
..
环境配置好之后,以后每次运行的时候,只需要
启动虚拟机
cd Homestead
homestead up
修改配置后执行更新命令
homestead provision
不行的话就
关闭homestead
homestead halt
或者多执行几次
homestead
provision
Homestead 与 虚拟机
Laravel 努力在整个PHP开发过程中提供令人愉快的开发体验,当然也包括本地的开发环境。首先明白以下几个概念
VirtualBox -- Oracle 公司的虚拟机软件, 能运行在当前大部分流行的系统上;
Vagrant 提供一种命令行接口, 允许自动化安装虚拟机, 并且因为是脚本编写成的
provision文本文件,
给共享虚拟机配置提供了可能, Homestead 正是构建在 Vagrant 之上;
Laravel Homestead 是官方预封装的一个 Vagrant Box,它是一台虚拟机的原型, 用来快速生产一个配置完整的服务器虚拟机, 运行在 VirtualBox 上.
Homestead 生产出来的虚拟机提供了一个完整的开发环境, 有了这个环境, 就不用再担心各种软件的设置会搞乱你的操作系统啦.
因为是虚拟机, 出现故障的时候, 可以在几分种内完成销毁和重建.
Homestead 能运行在所有的Windows、Mac和Linux上,它包含了Nginx、PHP 5.5、MySQL、Postgres、Redis、Memcached和你开发 Laravel应用程序需要的所有其它软件。
在多人协同开的情况下, Homestead 能用来统一开发环境, 让程序员把精力更集中的放在程序业务逻辑上, 免去了各种因为开发环境不一样而造成的混乱.
约定
假设我们要开发一个项目, 项目的名字叫 mytwitter.
首先在我们存放代码的地方
code文件夹里面创建项目根文件夹
mytwitter_project,
接下来咱们的操作都在此项目下进行
cd ~/code mkdir mytwitter_project cd mytwitter_project
安装 virtualbox 和 vagrant
在这里下载并安装 VirtualBox , Vagrant .直接下载 GUI 安装包安装就行.
下载并配置 Homestead
Homestead 包括以下两个东西一个 vagrant box 虚拟机, 里面软件什么都下载好了;
Github 代码库, 里面装载着 vagrant 的配置脚本, 用来自动化配置网络, 端口映射, 等一些开发时候用到的配置;
克隆 homestead 项目
在文件夹下克隆 homestead 项目到本地git clone https://github.com/laravel/homestead.git Homestead
加入 homestead box
执行以下命令添加 boxvagrant box add laravel/homestead
[注意] 命令行下下载速度太慢的话可以利用工具下载以下链接加速.
https://vagrantcloud.com/laravel/homestead/version/8/provider/virtualbox.box下载后执行以下命令, 修改
/path/to/virtualbox.box为正确的
path.
vagrant box add laravel/homestead /path/to/virtualbox.box
修改 homestead 的配置
根据你的情况修改 Homestead 项目里面文件 Homestead.yaml , 类似以下--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: /Users/me/.ssh/id_rsa.pub keys: - /Users/me/.ssh/id_rsa folders: - map: /Users/me/code/mytwitter_project/mytwitter to: /home/vagrant/mytwitter sites: - map: mytwitter.app to: /home/vagrant/mytwitter/public variables: - key: APP_ENV value: local
配置 hosts 文件
修改本机的 hosts 文件, 允许通过自定义域名访问, 这个域名是在上面的 Homestead.yaml里面设置的.
sudo vi /etc/hosts
添加以下一行
127.0.0.1 mytwitter.app
初始化 homestead 虚拟机
cd Homestead vagrant up
以上配置正确的话会有类似以下输出
➜ Homestead git:(master) ✗ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'laravel/homestead'... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: Homestead_default_1407410586606_38332 ==> ... etc.... ==> default: php5-fpm stop/waiting ==> default: php5-fpm start/running, process 1945
测试是否能成功连接, 虚拟机里的
~/mytwitter文件夹里的文件和本地的文件是一致的.
vagrant ssh cd ~/mytwitter ll
浏览器访问 http://mytwitter.app:8000/ .
至此, 成功安装.
其他配置
这时 mytwitter_project的文件夹结构如下:
➜ ls Homestead mytwitter
可以在 dotfile 里面增加 alias 进行快速连接 vm:
alias vm="ssh vagrant@127.0.0.1 -p 2222"
这样以后直接使用
vm就可进入
虚拟机了.
关于虚拟机里面的软件使用
PHP
vm进入虚拟机以后,
查看 php 版本
vagrant@homestead:~$ php -v PHP 5.5.15RC1 (cli) (built: Jul 15 2014 11:14:55) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.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
MYSQL
查看版本vagrant@homestead:~$ mysql --version mysql Ver 14.14 Distrib 5.5.38, for debian-linux-gnu (x86_64) using readline 6.3
vm 下命令行链接, 密码为
secret
mysql -uhomestead -p
默认提供 homestead 数据库
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | homestead | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)
顺便建数据库
phphub
mysql> create database phphub; Query OK, 1 row affected (0.00 sec)
设置数据库连接
本机连接 vm 里 mysql 方法是:host: 127.0.0.1 port: 33060 user: homestead pass: secret
关于 vm 里面其他服务的 port 信息如下, 或请见 文档
SSH: 2222 -> Forwards To 22 HTTP: 8000 -> Forwards To 80 MySQL: 33060 -> Forwards To 3306 Postgres: 54320 -> Forwards To 5432
其他软件
Homestead box 里还默认安装了以下软件Composer - php 的包管理器
Envoy - 一个远程任务执行工具, 用来管理远程服务器;
nodejs
gulp - 用来做自动化管理 css 和 js 等 assets 文件;
Codeception - 用作 BDD 测试
git
..
环境配置好之后,以后每次运行的时候,只需要
启动虚拟机
cd Homestead
homestead up
修改配置后执行更新命令
homestead provision
不行的话就
关闭homestead
homestead halt
或者多执行几次
homestead
provision
相关文章推荐
- Call to undefined function curl_init()解决方法
- PHP文件
- laravel 安装 Laravel 扩展包
- Iptables开放FTP(主/被)模式端口
- yii2.0使用migrate创建后台登陆
- 部署vsftp
- PHP isset 与 empty
- 使用matplotlib实现画图
- 自己动手写一个FTP客户端
- (三)PHP数据类型
- PHP preg_match正则表达式的使用
- 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
- 另外关于tp中用到的$this->遇到的几个标签
- PHP框架单入口文件原理浅析
- PHP析构函数与垃圾回收
- 读取windows的文件失败
- 关于php后台使用继承模板的理解
- ThinkPHP简单的基础
- php访问mysql工具类
- mac os 下phpstorm 安装tfs配置过程