windows下基础开发环境搭建

工作需要在windows环境下搭建一个基础开发环境,在此记录一下:

一、注意事项

  1. 以下的安装配置方法仅支持win7/8/10之类的系统,xp可以洗洗睡了。
  2. 装了cmder-full(With git-for-windows)版或者babun就没有必要安装git-for-windows了,不过从兼容性角度出发,建议还是使用cmder-full的版本,至少纯windows的环境下也能直接使用git指令,也支持外部ide调用。
  3. babun(cygwin)是调整过的cygwin环境,cmder默认是windows环境(可以安装chocolatey做包管理)两个环境面对的场景不同,choco安装的软件基本都是port到win环境下的版本,和babun的cygwin环境下的版本配置方式不一样,看各人喜好,可以分别使用,也可以只使用一个。
  4. linux的家HOME目录用~字符来标识,windows下通常对应的就是C:\Users\Administrator目录

二、终端环境

推荐使用cmder(With git-for-windows) + babun(cygwin)预配置环境的方式,既有普通cmd终端的linux化,又支持cygwin环境安装使用你所需要的linux环境安装包

  1. cmder-full(With git-for-windows)下载后解压缩到磁盘,(推荐c:\opt\cmder)
  2. 加入系统环境变量PATH环境变量中追加c:\opt\cmder路径。
  3. 注册右键菜单:以管理员身份启动命令行提示符(cmd),然后进入c:\opt\cmder路径后执行:

1
Cmder.exe /REGISTER ALL

  1. 提示符配置:修改cmder目录下的config\cmder.lua的第2行把λ替换为$,更符合日常linux下用户prompt的习惯。

1
2
3
function lambda_prompt_filter()
clink.prompt.value = string.gsub(clink.prompt.value, "{lamb}", "$")
end

  1. 常用别名配置:修改cmder目录下的config\alias文件,在最后加入常用的alias,比如:

1
2
3
l=ls --show-control-chars
la=ls -aF --show-control-chars
ll=ls -alF --show-control-chars

  1. 中文字间距问题,启动cmder后win+alt+p呼出设置面板去掉 monospace 选项(点两下让勾选框留空),然后save settings保存设置。

  2. 可选(安装chocolatey windows包管理器),打开cmder/cmd终端,执行以下命令:

1
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

  1. 安装babun的环境:下载babun官网上的安装包,解压后执行其中的install.bat批处理文件
  2. 配置整合babun环境到cmder工具中:启动cmder后win+alt+p呼出设置面板(Settings),然后打开 Startup>Tasks面板点+号添加一个task,名称输入babun, Task parameters中输入:

1
/icon "%userprofile%\.babun\cygwin\bin\mintty.exe" /dir "%userprofile%"

下面的Commands大输入文本框中输入:

1
%userprofile%\.babun\cygwin\bin\mintty.exe /bin/env CHERE_INVOKING=1 /bin/zsh.exe

save settings保存设置,然后你可以按up或down的按钮把{babun}的顺序调到{cmd}的前后,也可以勾选Default task for new console和Default Shell选项来把它作为默认console。注意,如果新开窗口想默认用{babun},需要修改Startup面板中的Specified named task不选{cmd}而是新的这个{babun}

  1. 修改babun的环境配置:cmder启动后打开{babun}的终端后编辑~/.zshrc文件:

1
vim ~/.zshrc

修改ZSH_THEME="babun"为ZSH_THEME="ys",后保存退出,然后关闭终端后再启动{babun}终端即可。

  1. 如果你还是习惯mingw的git-bash环境也可以在cmder工具中添加配置:启动cmder后win+alt+p呼出设置面板(Settings),然后打开 Startup>Tasks面板点+号添加一个task,名称输入gitbash,Task parameters中留空下面的Commands大输入文本框中输入:

1
%ConEmuDir%\..\git-for-windows\git-cmd.exe --cd-to-home --command=usr/bin/bash.exe -l -i

save settings保存设置即可,后续的就可以启动{gitbash}终端使用了。

至此你已经完成了windows下终端环境的配置,启动cmder后,{cmd}的task为windows上下文命令行:使用choco作为包管理器 同时也支持一些基本的linux命令比如ls,curl之类的,软件包管理可以使用chocolatey的choco指令,

search notepad
1
choco install -y notepadplusplus

{babun}的task为cygwin上下文命令行:使用pact作为包管理器

1
2
pact find php
pact install -y php

注意{babun}的cygwin环境上下文中的安装的包不能在windows上下文环境中使用,(比如这里安装的php指令在windows环境下则会报招不到php指令),但windows上下文环境中安装的软件可以在cygwin环境下最后被搜索到则调用,注意是调用,效率比较低,而且也无法控制执行,所以通常情况下的windows指令还是推荐在{cmd}终端中执行。

  1. 命令行生成私钥公钥对:

1
ssh-keygen -t rsa -C "you@myteam"

默认生成的文件在~/.ssh路径下的id_rsa(私钥)和id_rsa.pub(公钥),id_rsa.pub可以添加到代码托管环境的个人公钥列表中去

  1. 设置个人基础的git信息:

1
2
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"

三、开发环境(virtualbox+ vagrant[homestead]|docker[laradock])

  1. 安装 virtualbox和其下载页面的Oracle VM VirtualBox Extension Pack扩展包
  2. 安装vagrant工具
  3. 以vagrant(homestead)为例子构建开发环境: {cmd}命令行输入:

1
vagrant box add laravel/homestead

下载比较慢,你可以在这里: https://atlas.hashicorp.com/laravel/boxes/homestead 查到版本号,然后手工下载官方的链接,比如0.4.4的版本: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.4.4/providers/virtualbox.box 注意部分下载工具比如迅雷可能会导致下载的box文件损坏从而无法导入。 下载好后,放到可以被当前用户命令行访问到的地方然后执行:

1
vagrant box add laravel/homestead /Path/to/Homestead.box

/Path/to/Homestead.box就是你下载的box文件的完整访问路径。 导入成功后此时的box是没有版本信息的,你需要手工修正这个版本的问题:

1
2
cd ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead
mv 0 0.4.4

将0目录改名成0.4.4名称 然而此时的手工添加的方式没有升级信息需要手工添加metadata_url这个文件到系统下:

1
2
cd ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead
vim metadata_url

内容输入:

1
https://atlas.hashicorp.com/laravel/homestead

注意如果是手工编辑的此文件,不要有任何形式的回车换行符和空格等无效内容,保存后退出vim 接下来就可以开始homestead的基础安装了,返回到$HOME路径:

1
2
cd ~
git clone https://github.com/laravel/homestead.git ~/Homestead

你也可以使用我定制过的版本 【首次provision的时候,你网络没问题的话,自动帮你搞定以下问题】

国内apt源

    oh-my-zsh安装配置

    略调整过的vim环境配置

    composer环境加 中文源

    laravel-envoy部署工具、laravel命令行工具、box(phar打包工具)

    psysh 交互式php命令行工具

    cnpm 国内源npm

    phpunit命令行工具

    命令行代理服务、工具privoxy proxychains

    命令行科学上网工具,shadowsocks(sslocal/ssserver)+配置更新脚本 (懂得同学最好还是换成自己的配置/home/vagrant/etc/shadowsocks.json,并注释掉/etc/cron.d/ssupdateinfo中的对配置更新脚本的调用/home/vagrant/bin/upssinfo.sh)

    喜欢折腾的童鞋可以fork我的改版后自己修改 scripts/pre-setup.sh和scripts/post-setup.sh脚本。

1
2
cd ~
git clone https://github.com/nickfan/homestead.git ~/Homestead

然后进入~/Homestead后执行:

1
2
cd ~/Homestead/
bash init.sh

这个步骤会自动生成 ~/.homestead/Homestead.yaml的虚拟机配置文件,根据你自己的需要做对应的定制,比如我的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
ip: "192.168.70.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code/homesteadapp/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

注意的一点是~/Code也就是C:\Users\Administrator\Code目录不能是软链的目录而必须是实体目录,否则在virtualbox挂载的时候会报错。 然后回到~/Homestead执行:

1
2
cd ~/Homestead
vagrant up

执行首次启动的provision流程。 后续的执行只需要vagrant up即可。vagrant halt关闭虚拟机。 如果provision的过程中网络出现问题等其他虚拟机被弄乱的情况还可以 vagrant destroy --force来强行删除掉虚拟机,再vagrant up来重新provision一遍。 其他homestead的安装细节可以参考:http://laravel-china.org/docs/5.1/homestead

  1. 如果你比较熟悉docker也可以安装新的docker-tools集成docker工具集 安装的时候,前面你已经独立安装过了virtualbox和cmder(git-for-windows)所以此处安装时,请不用勾选 VirtualBox和Git for Windows两个选项 docker-setup 安装路径,推荐改为C:\opt\docker-toolbox 方便后续命令行操作时的输入。</p>
  2. 集成docker的启动命令: 在cmder工具中添加配置:启动cmder后win+alt+p呼出设置面板(Settings),然后打开 Startup>Tasks面板点+号添加一个task,名称输入docker, Task parameters中输入:

1
/dir "C:\opt\docker-toolbox" /icon "C:\opt\docker-toolbox\boot2docker.ico"

下面的Commands大输入文本框中输入:

1
"-new_console:C:C:\opt\docker-toolbox\boot2docker.ico" -new_console:n -new_console:t:Boot2Docker "-new_console:d:C:\opt\docker-toolbox" "%ConEmuDir%\..\git-for-windows\bin\sh.exe" --login -i "C:\opt\docker-toolbox\start.sh"

save settings保存设置即可,后续的就可以启动{docker}终端使用了。 另外如果docker-toolbox安装时是独立安装的git-for-windows(像我们前面描述的这样)需要手工修改桌面和开始菜单中的快捷方式Docker Quickstart Terminal,把目标程序的命令行内容改为:

1
C:\opt\cmder\vendor\git-for-windows\bin\bash.exe --login -i "C:\opt\docker-toolbox\start.sh"

  1. 以docker(laradock)为例子构建开发环境 你可以clone官方的版本:

1
2
cd ~/Code
git clone https://github.com/LaraDock/laradock.git

然后修改docker-compose.yml配置文件中的application的volumes设置:

1
2
3
4
5
6
### Laravel Application Code Container ######################
application:
build: ./application
volumes:
- ../:/var/www/laravel

改为:

1
2
3
4
5
6
### Laravel Application Code Container ######################
application:
build: ./application
volumes:
- ../dockerapp/:/var/www/laravel

也可以直接clone我改好的版本

1
2
cd ~/Code
git clone https://github.com/nickfan/laradock.git

然后可以把Code下 前面构建好的homesteadapp做个软链到dockerapp,这样可以只用一套代码

1
2
3
4
cd ~/Code
ln -nfs homesteadapp dockerapp
#或者windows上下文的
mklink /d dockerapp homesteadapp

最后初始化docker环境:

1
docker-compose up nginx mysql redis

剩下的调整配置、和使用部分可以参考官方文档:https://github.com/LaraDock/laradock

其他推荐软件

以下软件都可以用 chocolatey windows下的命令行包管理器 来安装,安装/卸载软件并不需要用到那些什么软件管理专家了。

  1. wox windows下类似于mac的alfred的快速启动工具,有了它记得软件、目录名字就可以了,忘了开始菜单吧。
  2. everything windows下的文件搜索工具,这个就不用多说了吧。
坚持原创技术分享,您的支持将鼓励我继续创作!