资讯专栏INFORMATION COLUMN

Vagrant 系列一:安装配置

liuyix / 2418人阅读

摘要:启动,输入验证安装是否成功,如果出现版本信息表示成功。安装注意官方推荐的是。如果上述命令执行失败,需要确认是否是最新版本。和配置文件中的保持一致在目录下运行命令启动这个提示是冲突,更改即可。再执行,首次启动会有一个初始化过程查看状态。

如果是工程化开发,走正规军路子还是推荐使用 Homestead。下载Vagrant。官方下载地址

这里下载的是Windows版本的安装包。直接点击安装即可,安装过程中可自定义安装路径。Windows+r启动cmd,输入vagrant -v验证安装是否成功,如果出现版本信息表示成功。

注:如果你使用的是 Windows,需要开启系统的硬件虚拟化(VT-x),这通常可以通过 BIOS 来开启。如果你是在 UEFI 系统上使用 Hyper-V,则需要关闭 Hyper-V 以便可以访问 VT-x。

预装软件

Homestead 可以运行在 Windows、Mac 以及 Linux 等主流操作系统上,预装的软件和工具列表如下:

Ubuntu 16.04

Git

PHP 7.2

PHP 7.1

PHP 7.0

PHP 5.6

Nginx

Apache(可选)

MySQL

MariaDB(可选)

SQLite3

PostgresSQL

Composer

Node(With Yarn, Bower, Grunt, and Gulp)

Redis

Memcached

Beanstalkd

Mailhog

Elasticsearch(可选)

ngrok


1. 安装前准备

使用 Homestead 之前,需要先安装VirtualBox,以及 Vagrant,所有这些软件包都为常用操作系统提供了一个便于使用的可视化安装器,通过安装界面引导就可以完成安装。

2.安装 Vagrant box
注意: Laravel官方推荐的Shell是Git Bash。因为Git Bash自动将~(tilde)映射到用户根目录下(例如,C:UsersMyUserName),而如果使用Windows自带的cmd,那么需要使用%HOMEDRIVE%%HOMEPATH%环境变量来进入正确的文件夹。

VirtualBox 和 Vagrant 安装好了之后,在终端中使用如下命令将Homestead Vagrant box laravel/homesterad 添加到 Vagrant 中
vagrant box add laravel/homestead

选择virtualbox选项,进入下载等待,时间取决于网络。如果上述命令执行失败,需要确认 Vagrant 是否是最新版本。网络或者机器关机中断后一直报错 Failed to connect to vagrantcloud-files-production.s3.amazonaws.com port 443: Timed out之类的错误。还有解压错误等。可能是跟网络有关系,再试几次就成功了(可以用管理员打开cmd去试试)。国内网络也就这样了,不行就移步手动下载。

  x ubuntu-16.04-amd64-disk001.vmdk: gzip decompression failed
    bsdtar.EXE: Error exit delayed from previous errors.

使用vagrant box list命令确认是否安装了box。

也可以选择手动下载安装laravel/homestead box下载地址vagrant cloud 下载地址,https://app.vagrantup.com/laravel/boxes/homestead/versions/5.2.0/providers/virtualbox.box
如果你需要下载不同版本(或最新版本),请将以上地址中versions/后的数字版本号替换成相应的版本号。

下载好之后改名为virtualbox.box,

和virtualbox.box放置在同一个目录。执行vagrant box add laravel/homestead ~/Downloads/virtualbox.box添加。后边的~/Downloads/virtualbox.box是文件存放路径。

Vagrant 2.0.3有问题,报Invalid file://hostname/, expected localhost or 127.0.0.1 or none。

3. 安装 Homestead

选择任意目录作为Homestead目录。如:F:,在这个目录下执行clone

git clone https://github.com/laravel/homestead.git Homestead
或者下载zip包 GitHub路径

然后进入克隆下的目录 cd Homestead/

// Mac/Linux...
bash init.sh

// Windows...
init.bat
在 Homestead 目录下运行 init.bat 命令来创建 Homestead.yaml 配置文件,生成的 Homestead.yaml 配置文件文件位于当前 Homestead 目录。如果git Base 执行 bash init.sh

完成后会生成Homestead.yamlVagrantfile

---
#`Homestead.yaml`配置文件:
# 虚拟机ip
ip: "192.168.10.10"
# 虚拟机使用内存
memory: 2048
# 虚拟机使用的单核CPU
cpus: 1
# Vagrant 提供者
provider: virtualbox
# 公共ssh key
authorize: ~/.ssh/id_rsa.pub
# 私有ssh key
keys:
    - ~/.ssh/id_rsa
# 共享文件夹
folders:
    - map: ~/code
      to: /home/vagrant/code
# 站点配置
sites:
    - map: homestead.test
      to: /home/vagrant/code/public
# 数据库名
databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# 端口转发
# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

variables:
    - key: APP_ENV
      value: local 

如果sites在配置Homestead框后更改属性,则应该重新运行以更新虚拟机上的Nginx配置,vagrant reload --provision
修改本地host文件:在 Mac 或 Linux上,该文件位于 /etc/hosts,在 Windows 上,位于 C:WindowsSystem32driversetchosts。和配置文件中的ip保持一致

192.168.10.10 homestead.test

Homestead 目录下运行 vagrant up 命令启动

这个提示是ip冲突,更改ip即可。

手动下载的,执行vagrant up 时还是提示找不到,这是因为手动引入的box版本问题

解决方法就是,进入Homestead/scripts 下的 homestead.rb文件,做以下修改即可。

vagrant reload --provision 重启。再执行vagrant up,首次启动会有一个初始化过程

vagrant status 查看状态。running状态启动成功。

4. 相关管理命令

vagrant up :启动虚拟机
vagrant halt :关闭虚拟机
vagrant reload --provision 重启
vagrant suspend: 暂停虚拟机,就是挂起
vagrant resume :恢复虚拟机
vagrant box remove xx: 移除box,其中 xx 是 box 名称
vagrant destroy :删除虚拟机

5. SSH 登录

vagrant up 启动界面可以看到ssh登录地址和端口:

默认账户密码是:vagrant。使用ssh登录工具登录即可。

6. 连接mysql

要通过本地的 Navicat 或 Sequel Pro 连接到 Homestead 上的 MySQL 或 Postgres 数据库,可以通过新建连接来实现,主机 IP 都是 127.0.0.1,对于 MySQL 而言,端口号是 33060,对 Postgres 而言,端口号是 54320,用户名/密码是 homestead/secret


7. php扩展安装

在vagrant box 上安装PHP扩展
这里以安装MongoDB扩展为例:
1. 首先安装mongodb数据库

`apt-get update` 更新源,也可以不更新,包的新旧问题

sudo apt-get install -y mongodb
2. 安装mongodb扩展

pecl update 通道升级 `sudo pecl channel-update`

`pecl install mongodb`  php7 以上的版本,默认最新

修改配置文件。特别注意,vagrant中需要修改两处,不然会出现在 php -mphpinfo()打印出来的不一致。

* `sudo vim /etc/php/7.2/fpm/php.ini` 第一处
* `sudo vim /etc/php/7.2/cli/php.ini` 第二处

添加extension=mongodb.so进去。然后重启php-fpm。

执行命令: sudo service php7.2-fpm restart

这样就可以通过php -mphpinfo()输出结果,显示是一致的。
vagrant 中的版本较多,可以通过ll /etc/alternatives/php 查看默认的版本。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28581.html

相关文章

  • nginx系列2----从源码安装nginx和echo-nginx-module模块

    摘要:下面的参数是根据需要在压缩或解压档案时可选的。备注了解过程省略这里添加了模块生成文件使用系统库没有用到库使用系统库这些路径是要了解的这是配置文件 资源1: 官网: http://nginx.org资源2: 官方学习资源,     wiki,     nginx安装之wiki介绍资源3: 编译选项列表资源4: nginx源码下载列表,当前Stable版本是nginx-1.14.0,资源5...

    mylxsw 评论0 收藏0
  • nginx系列2----从源码安装nginx和echo-nginx-module模块

    摘要:下面的参数是根据需要在压缩或解压档案时可选的。备注了解过程省略这里添加了模块生成文件使用系统库没有用到库使用系统库这些路径是要了解的这是配置文件 资源1: 官网: http://nginx.org资源2: 官方学习资源,     wiki,     nginx安装之wiki介绍资源3: 编译选项列表资源4: nginx源码下载列表,当前Stable版本是nginx-1.14.0,资源5...

    nihao 评论0 收藏0
  • Yii系列(1)打造虚拟开发环境及Yii的安装配置

    摘要:我下载到了本机上与打通的文件夹中,再进入,执行以下命令用代号取代的发行版本代号,本系统是所以代号为通过执行,在文件尾部中添加,以下代码保存,相关编辑操作请谷歌。安装的前提是,已经安装成功。 最近因为工作开始接触Yii,之前开发使用laravel习惯用vagrant。所以,这次尝试着打造一个box,专门用来写Yii框架的项目。 在这次打造box,收获了很多:1)更加熟悉了nginx的配...

    shleyZ 评论0 收藏0
  • Day 4:PredictionIO——如何创建个博客推荐器

    摘要:是什么是一个用编写的开源机器学习服务器应用,可以帮助你方便地使用搭建推荐引擎。是一个可伸缩的机器学习库,它提供众多聚集分类过滤算法。我为什么要关心我决定学习是因为我想使用一个可以帮助我加上机器学习功能的库。 编者注:我们发现了比较有趣的系列文章《30天学习30种新技术》,准备翻译,一天一篇更新,年终礼包。下面是第四天的内容。 今天是30天学习30种新技术的第4天。到目前为止我很享...

    tinysun1234 评论0 收藏0

发表评论

0条评论

liuyix

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<