logo
关于我们

技术分享

技术分享 基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式

基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式

2021-06-01

搭建PHP开发环境时, 如果是单一操作系统, 无论 纯windows 开发还是 纯linux 都会有诸多不便

  • 纯windows: 开发环境与线上linux环境的不一致往往造成一些部署问题

  • 纯linux: 许多常用windows软件无法使用

所以一种常见的php开发环境搭建如下:

  • 搭建vmware虚拟机跑服务器版linux,并架设 LAMP/LNMP 服务

  • window下secureCRT远程ssh管理该虚机

  • 通过samba服务将linux虚机下的代码目录共享给windows实机, 开发人员windows实机下在这个共享目录做开发

  • windows实机浏览器访问虚拟机中的web服务做调试


新建虚拟机

请准备至少20g硬盘、3g内存、使用仅主机模式网络

配置虚拟机内网环境 - 使用hostonly

vmware中有 nat、bridge、hostonly三种虚拟机网络连接方式,其中:

  • nat模式不支持vpn穿透,这会导致在国内部分公司做开发很受局限,许多公司在访问远程开发环境和开发数据库时需要启用vpn链路,这时nat模式的虚拟机网络便会掉线

  • bridge模式需要占用局域网ip,这在国内部分公司做开发也会受局限,许多公司的ip是动态绑定到网卡的,虚拟机无法申请到ip使用

  • hostonly模式是我推荐的连接方式,它并不像许多网上教程说的那样不支持外网访问,其实配置得当以后是可以访问外网的, 而且它支持vpn穿透不占用公司局域网ip

hostonly模式默认使用VMnet1虚拟网卡(默认占用1号ip),后面我们约定给虚拟机配置2号ip

配置windows实机的入网网卡,共享其网络连接给VMnet1虚拟网卡

基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式

配置虚拟网路编辑器,配置仅主机模式为启用“将主机虚拟适配器连接到此网络”,关闭“DHCP”

基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式


安装CentOS7操作系统

虚拟机光驱加载CentOS7 ISO镜像,启动虚拟机安装:

  1. 选定时区

  2. 增加简体中文支持

  3. 软件选择最简安装Minimal Install (出于性能的考虑,我们选择最简方式安装系统,刨去那些无用又占资源的服务,因此造成的各种基础包的缺失我会在安装过程中逐步补全)

    • Minimal:基本的系统,不包含任何可选的软件包

    • Desktop:基本的桌面系统,包括常用的桌面软件,如文档查看工具

    • Minimal Desktop:基本的桌面系统,包含的软件更少

    • Basic Server:安装了基本系统平台的支持,不包含桌面

    • Database Server:基本系统平台,加上MySQL和PostgreSQL数据库的客户端,无桌面

    • Web Server:基本系统平台,加上PHP,Web server,还有MySQL和PostgreSQL数据库的客户端,无桌面

    • Virtual Host:基本系统加虚拟化平台

    • Software Development Workstation:包含的软件包较多,基本系统,虚拟化平台桌面环境,开发工具等

  4. 配置网络(这里设定好后就不需要下面去修改网卡配置文件了)
    在IPv4 Settings中做这些配置:

    • Method改为Manual

    • Addresses里分配一个宿主机所在网段ip,掩码255.255.255.0,网关为宿主机ip

    • DNS server为宿主机ip 示例配置如下图

    • 基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式

  5. 启动安装后设定root密码

等待系统安装完毕重启


运维用户管理

基于安全性和文件权限相关考量,一般都是以普通用户身份来管理系统,而不推荐以root账号来管理系统

# 密码登录root账号,然后新建一个普通管理员账号
useradd yunwei  # 创建yunwei账户

passwd yunwei  # 设定yunwei账户的密码
# 如果密码设定过于简单,系统会提示the password fails the dictionary check并要求重新设定
# 绕过方法:
# vi /etc/pam.d/system-auth
# 注释掉 password requisite 那行
# 编辑 password sufficient 那行, 删除末尾的 use_authtok

usermod -aG wheel yunwei  # 把yunwei账户加入wheel管理员组
id yunwei  # 查看yunwei账号的属组情况
su - yunwei  # 切换到yunwei账号及相应上下文账户环境

虚拟机网卡设定(若上述过程未配置网络)

编辑虚拟机网卡配置,具体网段(这里是192.168.137.0)和网卡文件名(这里是ifcfg-ens32)需要看实际情况

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens32

# 做如下修改
ONBOOT=yes
BOOTPROTO=static

# 追加下述三行
IPADDR=192.168.137.4
GATEWAY=192.168.137.1
DNS1=192.168.137.1

重启网络服务 service network restart这时候应该能ping通百度了 ping baidu.com

安装ssh服务

sudo yum install openssh-server

SecureCRT远程ssh管理虚拟机

使用我们刚创建的管理员账号yunwei远程ssh连接到虚拟机,免去我们在实机虚机间切换的麻烦。 至此,我们就可以通过终端工具比较方便的和虚拟机交互了。 (视具体情况,连接可能需要十几秒时间才有响应)


简化sudo操作

为了日后管理方便,我们解除wheel组账户在sudo操作时密码的输入

sudo visudo

# 注释掉下面这行
%wheel	ALL=(ALL)		ALL

# 启用下面这行
%wheel	ALL=(ALL)		NOPASSWD:ALL

关闭安全服务

为后面安装smb等其他服务方便,避免各种服务被屏蔽

sudo service firewalld stop  # 关闭防火墙(centos6.5下是iptables服务)
sudo chkconfig firewalld off  # 关闭防火墙的开机启动
sudo setenforce 0  # 关闭selinux服务
sudo sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config  # 关闭selinux的开机启动

安装一些基础工具

sudo yum install gcc gcc-c++ cmake vim wget git  mlocate tree net-tools psmisc kernel-devel openssl-devel bash-completion

定制下shell提示符

# Sexy Solarized Bash Prompt, inspired by "Extravagant Zsh Prompt"
# Customized for the Solarized color scheme by Sean O'Neil
if tput setaf 1 &> /dev/null; then
    if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then
      BASE03=$(tput setaf 234)
      BASE02=$(tput setaf 235)
      BASE01=$(tput setaf 240)
      BASE00=$(tput setaf 241)
      BASE0=$(tput setaf 244)
      BASE1=$(tput setaf 245)
      BASE2=$(tput setaf 254)
      BASE3=$(tput setaf 230)
      YELLOW=$(tput setaf 136)
      ORANGE=$(tput setaf 166)
      RED=$(tput setaf 160)
      MAGENTA=$(tput setaf 125)
      VIOLET=$(tput setaf 61)
      BLUE=$(tput setaf 33)
      CYAN=$(tput setaf 37)
      GREEN=$(tput setaf 64)
    else
      BASE03=$(tput setaf 8)
      BASE02=$(tput setaf 0)
      BASE01=$(tput setaf 10)
      BASE00=$(tput setaf 11)
      BASE0=$(tput setaf 12)
      BASE1=$(tput setaf 14)
      BASE2=$(tput setaf 7)
      BASE3=$(tput setaf 15)
      YELLOW=$(tput setaf 3)
      ORANGE=$(tput setaf 9)
      RED=$(tput setaf 1)
      MAGENTA=$(tput setaf 5)
      VIOLET=$(tput setaf 13)
      BLUE=$(tput setaf 4)
      CYAN=$(tput setaf 6)
      GREEN=$(tput setaf 2)
    fi
    BOLD=$(tput bold)
    RESET=$(tput sgr0)
else
    # Linux console colors. I don't have the energy
    # to figure out the Solarized values
    MAGENTA="\033[1;31m"
    ORANGE="\033[1;33m"
    GREEN="\033[1;32m"
    PURPLE="\033[1;35m"
    WHITE="\033[1;37m"
    BOLD=""
    RESET="\033[m"
fi

parse_git_dirty () {
    [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit, working directory clean" ]] && echo "*"
}
parse_git_branch () {
    branch=$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1$(parse_git_dirty)/")
    echo $branch
}

PS1="\[${BOLD}${CYAN}\]\u \[$BASE0\]in \[$BLUE\]\w\[$BASE0\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" on \")\[$YELLOW\]\$(parse_git_branch)\[$BASE0\] \$ \[$RESET\]"

将以上代码保存为 /etc/prompt.sh 文件

sudo chmod 777 /etc/prompt.sh
sudo sed -i 's|\r||g' /etc/prompt.sh  # 删除window换行符
sudo sed -i '$a source /etc/prompt.sh' /etc/profile  # 开机加载
source /etc/prompt.sh

定制vim更方便

sudo vim /etc/vimrc 命令追加如下配置

%retab!
set nu  "显示行号
set ic  "搜索时忽略大小写
set nowrap  "禁止自动换行
set ffs=unix,dos,mac
set expandtab  "制表符以空格组合展示
set tabstop=4  "读取时制表符长度
set softtabstop=4  "编辑时制表符长度
set ai shiftwidth=4  "设定缩进4。注意:粘贴缩进文本需退出缩进set noai,否则粘贴结果会 自动缩进+剪贴板文本已有缩进

禁用官方源

cd /etc/yum.repos.d
sudo mkdir backup
sudo mv *.repo backup/

使用新的源

sudo wget http://mirrors.163.com/.help/CentOS7-Base-163.repo  # 国内的高速YUM源 - 163源
sudo yum install epel-release  # 增加EPEL源
# 重建yum缓存
sudo yum clean all  #清除yum源缓存信息
sudo yum makecache  #重建yum源缓存信息
sudo yum repolist

安装vmtools虚拟机增强套件

虚拟机光驱加载 vm安装目录\VMware Workstation\linux.iso 文件(这是vmwaretool镜像而非系统镜像)并重新连上光驱。

sudo mkdir /media/cdrom
sudo mount /dev/cdrom /media/cdrom  # 挂载光驱
cd /media/cdrom
mkdir /tmp/vmtools  # 创建vmtools安装的临时目录
cp -a VMwareTools-9.6.2-1688356.tar.gz /tmp/vmtools
cd /tmp/vmtools
tar -zxvf VMwareTools-9.6.2-1688356.tar.gz
cd vmware-tools-distrib/
sudo ./vmware-install.pl  # 执行安装脚本

# 一路回车直至安装完毕
# 其中下面这步选择 no 键入, 因为我们后面将通过更好的samba服务来实现实机虚机之间的文件系统共享
#The VMware Host-Guest Filesystem allows for shared folders between the host OS and the guest OS in a Fusion or Workstation virtual environment.Do you wish to enable this feature? [yes]

# 清理安装文件
rm -rf /tmp/vmtools

LNMP/LAMP环境编译搭建

参见文章 CentOS7-Minimal模式下编译搭建 LAMP / LNMP环境


搭建samba共享服务

samba服务提供了一种主机之间共享文件系统的能力
通过它,我们能将虚拟机下的代码目录共享给windows实机,这样我们便能在window环境下进行代码开发

安装samba服务

sudo yum install samba
sudo chkconfig smb on  # 设置smb服务开机启动
sudo service smb start  # 启动smb服务
sudo mkdir /srv/share  # 创建共享目录
sudo chmod -R 777 /srv/share
sudo smbpasswd -a yunwei  # 把yunwei账号加入smb服务中

配置samba服务
sudo vim /etc/samba/smb.conf 在配置文件最后追加如下几行

[share]
    comment = share directory for develop
    path = /srv/share
    valid users = yunwei
    public = yes
    writable = yes 
    create mask = 0777
    directory mask = 0777

重启samba服务
sudo service smb restart

映射网络驱动器
进入windows的资源管理器,选择映射网络驱动器,文件夹路径为: \\虚机ip\share,登录账号为yunwei基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式

查看共享信息
windows下cmd输入命令 "net use"

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 技术分享

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载