Fecshop vagrant安装 ¶
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。 我使用vagrant已经打包好一个box,您可以通过加载我打包好的box进行快速部署 fecshop的开发环境,vagrant是类似docker的容器类软件,不过和docker原理不同, 通过这种方式安装,你就不需要进行繁琐的手动安装各种环境和配置,可以快速部署Fecshop, 当然,你可以使用全手动安装方式.
链接如下:Fecshop 全手动安装
您加载我打包好的vagrant box,直接加载过来即可,这个里面的fecshop版本比较老, 需要进一步升级。
vagrant 基础知识:你可能没有使用vagrant,这个没有关系,我整理了一份vagrant使用的教程,地址如下: vagrant 下载部署linux环境 这些仅仅是参考知识,不是fecshop的安装步骤。
通过vagrant安装fecshop,非常的简便,下面是详细步骤:
1.下载Fecshop 环境的box ¶
box地址在百度云盘,下载地址为:百度云盘vagrant box 下载地址 , 进入后打开文件夹,下载 package.box即可(就是2.35G的那个文件)。
2.本地windows添加hosts ¶
打开C:\Windows\System32\drivers\etc\hosts,添加如下代码(如果是其他IP,将 127.0.0.1 替换成其他IP即可。):
127.0.0.1 rock.fecshoptest.com
127.0.0.1 my.fecshoptest.com
127.0.0.1 appadmin.fecshoptest.com
127.0.0.1 appfront.fecshoptest.com
127.0.0.1 appfront.fecshoptest.es
127.0.0.1 apphtml5.fecshoptest.com
127.0.0.1 appapi.fecshoptest.com
127.0.0.1 appserver.fecshoptest.com
127.0.0.1 img.fecshoptest.com #appimage/common
127.0.0.1 img2.fecshoptest.com #appimage/appadmin
127.0.0.1 img3.fecshoptest.com #appimage/appfront
127.0.0.1 img4.fecshoptest.com #appimage/apphtml5
127.0.0.1 img5.fecshoptest.com #appimage/appserver
3.下载vagrant 和 virtual box 并安装 ¶
3.1安装 VirtualBox ¶
虚拟机VirtualBox下载地址:https://www.virtualbox.org/wiki/Downloads
3.2下载 Vagrant ¶
下载地址:http://downloads.vagrantup.com/
经过上面的下载,我们
下载了virtual box vagrant 二个文件(如图第二个和第三个文件)
安装 virtualbox , vagrant ,这个基本都是下一步,安装完成后要重启
4.加载第一部的box,创建虚拟机运行linux ¶
4.1查看vagrant是否安装成功,window建+r ,打开命令行, ¶
进入命令行模式,输入vagrant,看看是否安装成功
4.2复制box文件 ¶
如果安装成功, 在d盘创建文件夹D:\vagrant_lib,然后把第一步下载的package.box复制 到这个文件夹下面 ,box的文件路径为 - D:\vagrant_lib\package.box
4.3add vagrant box ¶
按照这个命令添加fecshop box vagrant box add 名称 路径
c:\Users\lenovo>d:
D:\>cd vagrant_lib
D:\vagrant_lib>vagrant box add fecshop package.box
通过上面的步骤就可以把box加载进来了. 上面添加box的时间会几分钟才能 完成
4.4创建虚拟机 ¶
在d盘下面创建一个新的文件夹 vagrant_fecshop,绝对路径为 D:/vagrant_fecshop,进入到这个文件夹下面。执行如下代码
vagrant init fecshop
完成后,就会在D:/vagrant_fecshop下面生成一个文件, D:/vagrant_fecshop/Vagrantfile
打开这个文件找到代码
config.vm.network "forwarded_port"
,将这行代码替换成
config.vm.network "forwarded_port", guest: 80, host: 80
注意,前面的注释#要去掉,另外,如果你本地windows有软件占用80端口,请关掉,譬如您本地开启了xampp wamp等,请关掉,因为会占用本地win的80端口。
4.5通过vagrant启动虚拟机 ¶
也就是在路径D:/vagrant_fecshop下输入命令:
vagrant up
启动 vagrant up命令,第一次会慢一些,因为要复制文件。
如果在出现ssh信息,后面有一些警告信息,可以不用理会,直接用ssh连接即可,如果出现其他报错,请查看文章:http://www.fancyecommerce.com/2016/09/22/vagrant-下载部署linux环境/ , 这里面有一些对vagrant报错的解决方案,如果出现其他的报错,请使用bing.com或者google搜搜。
启动成功后,您就可以通过ssh连接了,注意ssh的端口为2222,而不是22,
ssh 连接
ip:127.0.0.1
端口:2222
用户名:vagrant,密码 :vagrant
root的密码也是vagrant (如果密码错误,那就是123456,我忘记打包box时,密码是那个了)
您可以通过 appfront.fecshoptest.com 来访问前端。
下面是nginx中的配置,各个入口的域名和对应的文件路径为:
pc端地址:appfront.fecshoptest.com appfront.fecshoptest.es 指向 /www/web/develop/fecshop/appfront/web
后台端地址:appadmin.fecshoptest.com 指向/www/web/develop/fecshop/appadmin/web
html5端地址(未开发):apphtml5.fecshoptest.com 指向/www/web/develop/fecshop/apphtml5/web
api端地址(未开发):appapi.fecshoptest.com 指向/www/web/develop/fecshop/appapi/web
手机app端地址(未开发):appserver.fecshoptest.com 指向/www/web/develop/fecshop/appserver/web
common图片端地址:img.fecshoptest.com 指向/www/web/develop/fecshop/appimage/common
appadmin图片端地址:img2.fecshoptest.com 指向/www/web/develop/fecshop/appimage/appadmin
appfront图片端地址:img3.fecshoptest.com 指向/www/web/develop/fecshop/appimage/appfront
apphtml5图片端地址:img4.fecshoptest.com 指向/www/web/develop/fecshop/appimage/apphtml5
appserver图片端地址:img5.fecshoptest.com 指向/www/web/develop/fecshop/appimage/appserver
rock mongo访问地址:rock.fecshoptest.com 账号:admin 密码:123456
phpmyadmin访问地址: my.fecshoptest.com 账号:root 密码:123456
后台端地址:appadmin.fecshoptest.com访问后,后台的用户名和密码为admin 123456(如果密码不对,就试试admin123)
这样就可以访问了,譬如:appfront.fecshoptest.com 访问前端pc web, appadmin.fecshoptest.com 访问后台web
5.vagrnat 常用命令 ¶
vagrant init # 初始化
vagrant up # 启动虚拟机
vagrant halt # 关闭虚拟机
vagrant reload # 重启虚拟机
vagrant ssh # SSH 至虚拟机
vagrant status # 查看虚拟机运行状态
vagrant destroy # 销毁当前虚拟机
6.vagrant 常见问题以及方法 ¶
1.在启动的时候报错:default : warning: Authentication failure . Retrying...
这个没啥大问题,可以直接连接使用。
2.vagrant的fecshop文件如何映射到本地?
vagrant box安装后,在虚拟linux中的文件路径为/www/web/develop/fecshop ,您可以先启动vagrant,将fecshop文件夹改下名字,譬如为: /www/web/develop/fecshop_cp,然后修改 Vagrantfile,内容如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
config.vm.box = "centos-6.6-x86_64"
config.vm.hostname = "dev"
config.ssh.username = "root"
config.ssh.password = "123456"
config.ssh.insert_key = "true"
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
config.ssh.forward_agent = true
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network "forwarded_port", guest: 80, host: 80
# Create a private network, which allows host-only access to the machine
# using a specific IP.
## config.vm.network "private_network", ip: "192.168.10.12"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
## config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
config.vm.synced_folder "D:\\linux\\fecshop", "/www/web/develop/fecshop"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
# vb.gui = true
vb.name = "dev"
# Customize the amount of memory on the VM:
vb.memory = "2048"
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
# such as FTP and Heroku are also available. See the documentation at
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
# config.push.define "atlas" do |push|
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
# end
# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end
把上面的内容复制到您的Vagrantfile
中,下面是对该配置文件中的解释。
下面的这个部分是对centos的一些定义,譬如下面配置的root账户密码等
config.vm.box = "centos-6.6-x86_64"
config.vm.hostname = "dev"
config.ssh.username = "root"
config.ssh.password = "123456"
config.ssh.insert_key = "true"
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
config.ssh.forward_agent = true
config.vm.network "forwarded_port", guest: 80, host: 80
: 端口映射配置,
将vagrant的80映射到本地的80
,这里要注意,要把本地的占用80端口的东西给关掉。
config.vm.network "private_network", ip: "192.168.10.12"
: 默认给注释了。
这个是映射ip,如果注释这个代码,linux的ip为127.0.0.1
config.vm.synced_folder "D:\\linux\\fecshop", "/www/web/develop/fecshop"
:
这个是地址映射,将window的 D:\\linux\\fecshop
挂载到
linux的/www/web/develop/fecshop
中,这里需要注意的是,如果linux中存在
一个文件夹 /www/web/develop/fecshop,那么,按照上面的配置后重启vagrant
,则linux文件夹将无法访问,访问的是当前配置
的文件夹(就是"D:\linux\fecshop"),因此,在上面,我们先把vagrant中的/www/web/develop/fecshop
改为/www/web/develop/fecshop_cp
。
然后在做上面的配置
在window需要新建文件夹:"D:\\linux\\fecshop"
配置完成后,重启vagrant,shell连接进入linux,然后执行
\cp -rf /www/web/develop/fecshop_cp/. /www/web/develop/fecshop/
即可,然后在 D:\\linux\\fecshop
就可以看到相应的文件了,
然后用phpstorm加载这里的文件即可,当D:\\linux\\fecshop
中的文件被改动
,linux中 /www/web/develop/fecshop/
就会改动,因为这属于磁盘挂载类型,
这样就可以愉快的做开发了。