资讯动态

VirtualBox+Ubuntu 18.04开发环境搭建:SSH远程与SAMBA共享完整指南

发布时间:2026/10/16 13:18:03 来源:尧图企业网站定制
平时搞开发尤其是做后端或者嵌入式方向的朋友应该都有过这种经历手上只有一台Windows主力机但代码和运行环境偏偏要Linux双系统来回重启太折腾云服务器又有延迟和环境差异的问题。我自己前几年反复试过多次方案最终固定下来的一套组合就是VirtualBox Ubuntu 18.04再配好SSH远程登录和SAMBA文件共享把Windows当操作界面、Ubuntu当工作环境两边优势互补用起来非常顺手。这篇文章就把这套环境的完整搭建过程、配置细节和备份恢复策略全部拆开讲一遍适合刚接触Linux虚拟化、以及想把自己开发环境加固一下的同学。这五样事情——装系统、SSH远程、SAMBA共享、静态IP/DNS、备份恢复每一项单独看都不复杂但连在一起做的时候坑其实不少。我写这篇文章的原因很简单网上零零散散的教程太多有的只讲安装有的只讲某个配置很少有人把整套链路串起来告诉你每一步为什么要这么配、踩过哪些雷。我把这几年反复重装、配置、折腾的经验整理成一套可复现的流程你照着走一遍基本能少走我当初一半的弯路。1. 整体方案设计为什么是VirtualBox Ubuntu 18.04 SSH/SAMBA1.1 这套组合解决了什么问题先说说这套方案的实际使用场景。假设你主力环境是Windows平时用桌面软件、写文档、刷网页都很舒服但跑脚本、编译代码、部署服务的时候Windows的类Unix环境和Linux服务器差异太大经常出现本地跑得好好的部署上去就报错的情况。这时候你就需要一台Linux机器而且最好离你足够近、响应足够快。VirtualBox在这件事上的优势非常明显它完全免费、跨平台、开箱即用而且以文件形式保存整个虚拟机状态复制一份就是一台新机器随时可以恢复到任意历史节点。加上Ubuntu 18.04是目前兼容性极好、资料极其充足的一个LTS版本大多数开源软件和教程都能直接在它上面跑用来搭开发环境、做实验服务器都很合适不像新版系统那样容易遇到软件源、内核模块兼容的新问题。SSH和SAMBA则分别解决了怎么操作和怎么传文件两件事。SSH让你在Windows的命令行里就像坐在Linux终端前一样敲命令、跑脚本、看日志全部远程完成SAMBA把Linux目录变成Windows网络共享盘代码写完直接拖进虚拟机跑日志和产物直接在Windows里打开看。两者配合实际上是搭建了一套很轻量的远程开发工作流。1.2 技术选型背后的逻辑我经常被人问为什么不用VMwareVMware Workstation Player免费版也可以但VirtualBox在命令行管理和快照灵活性上更胜一筹。尤其当你需要自动化备份、批量克隆、脚本化创建虚拟机时VirtualBox自带的VBoxManage命令行工具能省下大量重复操作时间这是在图形界面里逐项操作没法比的。再来说说为什么不用Ubuntu 20.04或者22.04。18.04是2018年发布的LTS版本标准支持已经结束但社区支持周期很长网上能搜到几乎所有问题的解决方案。对我这种更看重稳定复现的人来说用旧一点的系统反而踏实——因为我知道这个环境能跑什么不能跑什么踩过的坑都能回忆起来。如果纯粹跟着新版系统走光是netplan配置差异和软件源调整就可能耗费不少时间。1.3 整体架构规划这套方案的正确打开方式是先规划好网络拓扑再动手装系统。我建议至少给虚拟机配两块虚拟网卡第一块用NAT模式负责上网第二块用Host-Only模式配合静态IP供宿主机和虚拟机之间稳定通信。NAT能让虚拟机访问外网、更新软件、下载依赖包Host-Only则保证了宿主机访问虚拟机的路径不受局域网环境影响——比如你换了Wi-Fi、从公司回到家里这个IP都不会变SSH和SAMBA连接都不会断。虚拟机内部要开放三个核心服务SSH端口22、SAMBA端口445/139、以及默认的DNS解析。对外暴露的只有前两个DNS服务不出网卡只负责把内外域名解析请求处理掉。这样分工很清楚对外通信走NAT对内协作走Host-OnlyDNS负责把域名和IP映射关系理顺。后面所有配置章节都是围绕这套规划来落地的。2. 虚拟机和系统安装关键参数与安装避坑2.1 创建虚拟机需要重点关注的配置项在VirtualBox里点新建的时候有几个参数不要直接点默认否则后面用起来会很难受。第一是内存大小。Ubuntu 18.04桌面版建议至少给2GB服务器版1GB也能跑但如果你要在里面编译代码、跑容器内存建议直接给到4GB以上。内存不够的时候系统会疯狂使用交换分区整个虚拟机卡成幻灯片你根本没法干活。第二是虚拟硬盘。我建议选择动态分配Dynamically allocated这样创建的时候只占很小空间随着实际使用逐步增大。虚拟硬盘大小建议至少给32GB如果你是做深度开发、跑数据库直接给到50GB甚至更大。这里有个很多人不知道的技巧动态分配硬盘在虚拟机内部删除大量文件后磁盘文件不会自动收缩所以规划容量的时候宁可大一点也别整天担心空间不够。第三是CPU核心数按你宿主机配置来。如果你有8核16线程给虚拟机4核完全没问题但是建议在系统设置里勾选启用PAE/NX和启用VT-x/AMD-V嵌套分页这两个选项对Linux系统在虚拟机里的运行性能影响非常大。还有一个容易忽略的点是显存。如果安装的是桌面版显卡控制器建议选VBoxSVGA显存拉大到128MB否则桌面分辨率提不上去窗口拖拽也很卡。2.2 Ubuntu 18.04安装过程中的实操要点镜像建议从Ubuntu官网下载18.04.6这个最终维护版本安装介质里选Server还是Desktop取决于你需不需要图形界面。我自己日常操作全部通过SSH进行所以装的是Server版启动速度快、内存占用低如果你希望打开虚拟机窗口就像用一台普通电脑一样操作就选桌面版。启动虚拟机进入安装界面后注意几个细节语言和键盘布局直接选默认的English和Generic 101-key避免后续命令行工具出现奇奇怪怪的编码问题。网络配置环节如果检测到DHCP分配了IP可以先让它自动配置等系统装完再改成静态IP不然安装过程可能因为网络不通卡住。磁盘分区建议直接用默认的使用整个磁盘并配置LVM除非你明确知道自己需要手动分区否则不要自己折腾分区表。创建用户时填的用户名和密码会作为SSH登录凭证一定要牢记。安装完成后系统会重启这时先别急着配置各种服务跑一遍sudo apt update sudo apt upgrade把系统基础组件拉新。这里我强烈建议你安装完系统后立刻做一次快照后面配置折腾坏了随时能回退这个习惯特别值钱。2.3 安装后的基础环境调整别忘了安装虚拟机的增强功能。菜单栏设备里选择安装增强功能Guest Additions CD image挂载后在虚拟机里执行安装脚本。如果不装增强功能动态分配磁盘的IO性能、屏幕分辨率自适应、剪贴板共享这些功能都会大打折扣而且SAMBA和SSH的性能也会受影响。安装增强功能这一步很多人跳过但实际使用体验差异巨大。跑完安装命令后重启虚拟机你会明显感觉到窗口缩放流畅了文件拖拽也顺畅了后面复制日志、拖安装包进去都方便很多。3. SSH配置让Windows命令行直接操作Ubuntu3.1 安装并启动SSH服务Ubuntu 18.04默认是不装openssh-server的这也是很多新手创建完虚拟机发现连SSH不上的根本原因。你要做的第一件事就是进入虚拟机依次执行sudo apt update sudo apt install -y openssh-server安装完成后确认服务状态sudo systemctl status ssh如果你看到active (running)说明服务已经起来了。如果没起来执行sudo systemctl start ssh然后sudo systemctl enable ssh设置开机自启。然后查看虚拟机当前IPip addr show在输出中找到网卡对应的inet地址记下来。这个时候Windows端就可以用终端工具连接了ssh 用户名虚拟机IP端口默认是22不用加参数。如果你Windows没有安装OpenSSH客户端直接在设置里启用Windows 可选功能中的OpenSSH客户端或者装个终端工具这个看个人习惯。3.2 密钥认证与安全配置用密码登录虽然方便但每次都要输入一长串密码而且如果你把SSH端口暴露到公网密码登录很容易被暴力尝试。我个人的习惯是使用密钥认证在Windows上生成一个密钥对然后把公钥放到虚拟机的authorized_keys文件里。这样以后登录不需要输入密码而且更安全。在Windows命令行下执行ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_vbox生成后查看公钥内容type %USERPROFILE%\.ssh\id_rsa_vbox.pub把这段公钥复制到虚拟机的~/.ssh/authorized_keys文件中。也可以直接在虚拟机里使用ssh-copy-id命令ssh-copy-id -i id_rsa_vbox.pub 用户名虚拟机IP这样以后Windows就能免密登录了。密钥生成后建议把默认的~/.ssh/config文件配置一下把虚拟机的主机别名、IP、密钥路径全部写进去之后只需要敲ssh vbox就能秒连。3.3 端口映射与外部访问如果你的虚拟机第一块网卡是NAT模式默认情况下宿主机访问虚拟机的SSH端口是会被NAT网络挡住的。解决方法是使用VirtualBox的端口转发功能在虚拟机设置里找到网络 - 高级 - 端口转发添加一条规则协议TCP、主机端口2222、子系统端口22。这里主机端口可以随便选一个不冲突的比如2222。之后Windows连SSH的地址就变成了ssh -p 2222 用户名127.0.0.1要注意的是这个方式只适合宿主机访问虚拟机不能用于局域网其他电脑访问你的虚拟机。如果想让局域网里其他设备也连过来就必须走Host-Only或桥接模式这部分的取舍我在后面静态IP章节详细展开。3.4 sshd_config 关键参数调优SSH服务本身配起来并不复杂但如果你希望登录更顺畅、更安全建议修改一下/etc/ssh/sshd_config文件中的几个参数PermitRootLogin no禁止root直接登录所有操作通过普通用户sudo完成。PasswordAuthentication yes在你完成密钥认证配置以后可以改成no只允许密钥登录。AllowUsers 用户名只允许指定用户通过SSH登录其他用户一律拒绝。MaxAuthTries 3限制每次连接尝试认证的次数降低被暴力爆破的概率。修改完成后执行sudo systemctl restart ssh然后重新开一个终端测试登录确认没问题再关掉旧连接。改配置前先确认新配置能连上这是所有人都应该养成的习惯不然配置写错你自己就被关在门外了。生产环境我还会把SSH默认端口换掉但本地开发就没必要了端口还是保持22比较好免得SAMBA或其他服务脚本里忘了改端口排查半天还找不到原因。4. SAMBA文件共享Windows直接访问Linux目录4.1 安装SAMBA并创建SMB用户SAMBA是Linux上实现Windows文件共享协议的服务。你的目标是打开Windows的文件管理器在地址栏输入\\虚拟机IP\共享目录名就能像操作本地文件夹一样使用Linux里的目录。这个功能在开发中的价值非常大——代码直接在Windows里编辑保存后虚拟机里立刻能看到最新文件完全没有传输环节。安装SAMBAsudo apt install -y samba samba-common-bin安装后创建一个用于访问共享的SMB用户。这里要注意的是SMB用户的账号必须对应系统里已经存在的用户密码则独立设置sudo smbpasswd -a 用户名执行后会提示设置SMB专用密码这个密码可以和系统登录密码不同建议设一个容易记但别太简单的因为Windows访问共享时会频繁要求输入。4.2 共享目录配置与权限模型在/etc/samba/smb.conf文件的最底部追加一个共享段。假设要共享的是/home/用户名/workspace目录[workspace] comment Shared workspace path /home/用户名/workspace browseable yes writable yes valid users 用户名 create mask 0644 directory mask 0755 force user 用户名这里有几个关键参数值得细说valid users只允许指定的SMB用户访问其他用户即使能看到共享名也无法进入。create mask和directory mask控制新建文件和目录的权限。0644是所有者读写其他用户只读0755则是所有者完全控制其他用户可读可执行。这两个值设置成这个组合既能保证代码文件可编辑又不会因为权限过宽带来安全隐患。force user强制所有通过SMB写入的文件都属于指定用户这个参数特别适合解决Windows创建的文件在Linux里无法删除的权限问题。配置完成后重启服务生效sudo systemctl restart smbd sudo systemctl status smbd4.3 Windows端连接与写入验证Windows连接共享的方法是打开文件管理器地址栏输入\\虚拟机IP\workspace如果Host-Only网卡的静态IP是192.168.56.101那就是\\192.168.56.101\workspace。第一次登录会要求输入SMB用户名和密码勾选记住凭据以后就可以直接双击进入了。映射成网络驱动器更适合日常使用右键此电脑 - 映射网络驱动器选择一个盘符比如Z盘输入上面的路径完成映射后Windows资源管理器里就多出一个Z盘代码文件、日志文件都能直接用编辑器打开。连接的时候如果Windows提示找不到网络路径不要急着怀疑SAMBA有问题先按下面几个方向排查确认虚拟机里的smbd服务在运行。确认两台机器网络能通ping 虚拟机IP看是否有响应。确认SMB用户密码配置正确sudo pdbedit -L查看SMB用户列表。4.4 权限映射与多用户协作扩展如果你需要多人共同访问同一个共享目录比如一个小组都在这个虚拟机上写代码可以把valid users改成一个组valid users developers然后在系统里创建组并加入用户sudo groupadd developers sudo usermod -a -G developers 用户名再把共享目录的所有者组改掉sudo chown -R 用户名:developers /home/用户名/workspace sudo chmod -R 775 /home/用户名/workspace这样同一组的成员都能读写但其他用户只能进入目录、不能修改文件。权限模型建议遵循一个简单原则共享目录本身用组权限文件创建权限用force user兜底Windows端不要直接改Linux权限否则容易把权限体系搞乱。5. 静态IP与DNS配置让虚拟机地址固定下来5.1 网卡模式选择NAT、桥接、Host-Only怎么配合配置静态IP前先把VirtualBox的三种网络模式讲明白因为这个坑劝退了好多人。NAT模式虚拟机通过宿主机访问外网对外表现为一个私网设备。宿主机可以访问虚拟机但外部设备不行。如果你只在一台电脑上用虚拟机NAT加端口转发就够用了。桥接模式虚拟机直接接入宿主机所在的局域网拥有一个和宿主机同网段的IP可以被局域网内其他设备访问。缺点是IP受路由器DHCP控制可能变化。Host-Only模式虚拟机和宿主机之间单独组成一个私网这个网络完全由VirtualBox控制IP稳定不变宿主机随时能访问虚拟机但虚拟机访问外网的出口需要额外配置。我的推荐方案是双网卡第一块NAT管出网第二块Host-Only管稳定通信。这样静态IP配在Host-Only网卡上不管外部网络怎么变你连接虚拟机的地址永远不变同时虚拟机又不缺互联网。如果你是公司里开发、偶尔需要被同事访问可以再加一块桥接网卡但核心的连接方式还是Host-Only。5.2 netplan静态IP与DNS配置实操Ubuntu 18.04的网络配置已经改用netplan配置文件在/etc/netplan/目录下文件名一般是01-netcfg.yaml或50-cloud-init.yaml取决于安装方式。你可以用ls /etc/netplan/确认一下。修改前先备份sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak然后编辑文件。假设你的Host-Only网卡是enp0s8第二块网卡配置如下network: version: 2 renderer: networkd ethernets: enp0s8: dhcp4: no dhcp6: no addresses: - 192.168.56.101/24 gateway4: 192.168.56.1 nameservers: addresses: - 223.5.5.5 - 8.8.8.8细讲一下各个字段的含义dhcp4: no关闭自动获取IPv4地址这是静态IP的前提。addresses给网卡指定的静态IP和子网掩码。192.168.56.x是VirtualBox默认Host-Only网段x.x.x.101是我习惯分配给这台虚拟机的地址。gateway4默认网关。Host-Only模式下网关通常是宿主机在这个网段的地址一般是192.168.56.1。nameserversDNS服务器。223.5.5.5是国内公共DNS8.8.8.8是全球通用DNS两者搭配基本能保证国内外域名都能解析。如果NAT网卡也需要固定IP可以追加一个enp0s3网段的配置但通常NAT网卡保持DHCP即可不需要手工指定。然后应用配置sudo netplan apply执行后等几秒再执行ip addr show enp0s8确认IP已经变成192.168.56.101。这里要注意如果你把网关或者DNS配置错了netplan apply后可能直接失去和外网的连接这时候用配置备份恢复原样或者直接重启虚拟机让DHCP临时接管。5.3 配置验证与常见坑配置完以后做一轮完整验证ip addr show ip route show ping -c 4 192.168.56.1 ping -c 4 223.5.5.5 ping -c 4 www.baidu.com第一条命令看IP是否生效第二条看默认路由是否正确第三条确认能到达宿主机第四条测试外网连通性第五条测试DNS解析是否正常。如果ping 223.5.5.5通了但ping www.baidu.com不通问题基本出在DNS解析上去检查nameservers配置。还有一个容易踩的坑是虚拟机重启后Host-Only网卡偶尔会变成未激活状态。检查方式ip link show enp0s8如果状态不是UP手动拉起sudo ip link set enp0s8 up sudo netplan apply我建议把这两个命令写进开机自启脚本省得每次重启都要手动操作。另外如果你配置的DNS端口被占用比如系统里的dnsmasq或者systemd-resolvedDNS解析会异常。Ubuntu 18.04自带systemd-resolved它会监听127.0.0.53:53。如果你在netplan里配置了nameservers但解析还是不生效检查/etc/resolv.conf是否指向了127.0.0.53如果是就用systemd-resolve --status查看实际生效的DNS列表。6. 备份与恢复快照、克隆、文件多级备份方案6.1 快照备份的适用场景与快照链陷阱备份这件事我吃过很大的亏所以这一节想多说几句。VirtualBox自带快照功能可以对虚拟机某一时刻的状态做保存。安装完系统、配好基础环境后做一次快照以后不管怎么折腾一个命令就能回到干净状态。在GUI界面控制器旁边就是快照按钮命令行方式VBoxManage snapshot 虚拟机名 take ubuntu-base --description 基础环境装好后恢复快照VBoxManage snapshot 虚拟机名 restore ubuntu-base但快照不是万能的有一个快照链的机制很关键快照是按时间顺序串联的如果你想恢复到一个中间时间点后面的快照会一起被抹掉而且快照文件是增量存储的快照数量越多、时间越长虚拟硬盘的IO性能下降越明显。所以我建议快照只用来做临时回退点不要在快照链里留太多冗余节点用完就删掉。6.2 克隆虚拟硬盘与OVF导出如果你需要的是完整的另一台环境克隆虚拟硬盘是最直接的方案。在VirtualBox里选中虚拟机右键复制可以生成完全独立的副本。命令行方式更灵活VBoxManage clonehd source.vdi backup.vdi --format VDI克隆完成后新建虚拟机时把硬盘指向这份克隆文件即可。如果你想跨机器迁移整个环境建议使用OVF格式导出。选择文件 - 导出虚拟电脑生成一个.ova文件里面包含了虚拟机的全部配置和磁盘镜像。导入侧只需要导入虚拟电脑一切配置自动还原。这套操作对迁移环境、提交给同事复现问题都非常有用。6.3 文件级备份与恢复实操日常开发中更实际的备份需求往往不是整机而是关键数据——比如Nginx配置、数据库文件、代码目录。这类备份用Linux命令就够用我用得最多的是tar和rsync。整目录压缩tar czf backup-$(date %Y%m%d).tar.gz /home/用户名/workspace /etc/samba /etc/netplan这条命令把workspace、Samba配置、网络配置一次性打包。恢复的时候只要解压回对应路径即可。rsync适合做增量同步比如把虚拟机里的数据定期同步到宿主机目录rsync -avz --delete /home/用户名/workspace/ 用户名宿主机IP:/backup/workspace/--delete参数表示源目录删除的文件备份目录也同步删除保持两边完全一致。这种同步方式配合cron定时任务可以做到每小时自动备份一次几乎不需要人工干预。6.4 恢复演练一次完整的数据恢复流程我建议每个使用者都至少做一次完整的恢复演练过程不难但意义很大。我的演练场景是假设虚拟机系统崩溃需要用备份重建环境。第一步新建一台同名虚拟机挂载之前克隆或者导出的磁盘镜像。第二步启动系统恢复文件级备份tar xzf backup-20240101.tar.gz -C /第三步重启服务sudo systemctl restart smbd sudo systemctl restart ssh第四步验证SSH登录、SAMBA访问、网站服务是否正常。整个流程走通一次你心里就有底了真正出问题的时候不会慌。这里想说一句可能不太中听但很重要的话如果你只做了快照没做过文件级备份在真的出现数据损坏时快照恢复出来的也可能是一份损坏的数据。多级备份的意义在于快照管系统状态文件备份管业务数据两边互补才能做到万无一失。7. 日常使用中的问题排查速查这套环境跑久了总归会遇到各种小毛病。我把线上和本地使用过程中碰到过的典型问题整理成一张表每个都是自己踩过的坑照着排查能省不少时间。现象可能原因排查与解决方法虚拟机里ping不通外网NAT网卡未启用或DNS配置错误ip route show查看默认路由检查netplan中的gateway和nameserverssudo netplan applyWindows连不上SSHSSH服务未启动或防火墙拦截sudo systemctl status ssh检查状态确认22端口未被ufw拦截SSH免密登录不生效公钥文件权限过大检查~/.ssh/authorized_keys权限必须是600~/.ssh目录权限必须是700SAMBA无法访问服务未启动、凭据错误或防火墙sudo systemctl status smbd、sudo pdbedit -L查看用户、检查445端口SAMBA写文件后属主不对缺少force user参数smb.conf共享段加force user 用户名重启smbd静态IP配置后失去外网gateway4写错或DNS顺序错误先ping 网关IP再ping 223.5.5.5最后检查DNS解析虚拟机磁盘空间不足动态分配硬盘文件太大删除大文件后用VBoxManage modifymedium --compact收缩磁盘文件系统启动后IP丢失netplan未开机加载确认配置文件语法正确执行sudo netplan generate生成/run/systemd/network里对应的配置7.1 防火墙相关的一个容易忽略的点如果你的虚拟机开启了ufw防火墙SSH和SAMBA端口默认都是被拦的。排查问题之前先看看防火墙状态sudo ufw status如果启用了放行这两个端口sudo ufw allow 22/tcp sudo ufw allow 445/tcp sudo ufw allow 139/tcp很多教程根本不提ufw这件事导致你反复检查服务配置却始终连接失败非常浪费时间。自己排查问题的时候第一反应应该是看防火墙而不是改配置文件。7.2 关于时间同步的隐藏坑虚拟机运行一段时间后系统时间可能会和宿主机产生偏差这个在调用日志、编译代码、git提交时特别明显——你会突然发现commit时间比实际时间慢了几分钟甚至证书校验直接失败。解决方法sudo apt install -y ntpdate sudo ntpdate ntp.aliyun.com建议把这条命令写进cron定时任务每天同步一次0 3 * * * /usr/sbin/ntpdate ntp.aliyun.com /dev/null 21这个问题不影响核心功能但非常影响日常使用舒适度尤其是做过一次日志时间不对导致排查很久的事之后你就会把它当成必须配置的项目。7.3 虚拟机崩溃后的应急恢复手段最让人头疼的情况是虚拟机意外断电重启后一直停留在启动画面。我遇到过好几次这个情况总结出来的应急手段是先不要急着格式化重建先用恢复模式进入系统。在GRUB引导界面选择Advanced options - Recovery mode进入后选择root选项拿到root shell然后检查磁盘文件系统fsck -y /dev/sda1修复完成后重启大多数情况下能直接把系统拉起来。如果恢复模式也进不去就把虚拟硬盘挂载到另一台正常虚拟机里手动拷贝关键配置和文件这就是文件级备份发挥作用的时候了。结尾一点个人经验这套VirtualBox Ubuntu 18.04 SSH/SAMBA 静态IP/DNS 备份恢复的组合是我这几年用得最顺手的本地开发环境方案。前前后后我折腾过不下十种其他做法包括纯双系统、远程云主机、WSL最终还是回到了这套方案上——它免费、可控、可复制而且每一步配置都透明可见。如果你按照我上面写的顺序走一遍大概率半天之内就能把环境全部拉起来。最后再分享一个我自己吃了很多次亏才总结出来的习惯任何配置修改之前先备份原文件任何备份方案落地之前先做一次恢复演练。这两句话能帮你规避掉绝大多数灾难性故障。环境跑起来之后它就不是一锤子买卖而是你要长期依赖的工作台前期多花十分钟把基础打牢后面能省下无数个焦虑的排查夜晚。这套流程里如果你碰到什么特别奇怪的报错多半不是你的问题而是某个配置文件里隐藏的细节没对齐回头再看一遍对应章节基本都能找到答案。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑