
准备阶段:3样东西提前备好,少一样都可能失败
部署源码前,你得先把这几样东西准备好,就像做饭前要备齐食材一样,缺一样都可能让整个流程卡壳。我见过太多人兴冲冲开始部署,结果做到一半发现”哎呀,服务器密码忘了”或者”工具没下载”,来回折腾反而浪费时间。
服务器基础配置:从购买到能用,这3个地方要检查
不管你是刚买的阿里云服务器,还是已经用了一段时间的旧服务器,部署前一定要确认这几点。去年有个做设计的朋友,服务器买好了,源码也传上去了,但网站就是打不开,后来发现是安全组没开80端口,白白折腾了一下午——这种低级错误完全可以避免。
首先看实例状态:登录阿里云控制台,进入”云服务器ECS”,找到你的服务器实例,确保状态是”运行中”(绿色的),如果是”已停止”(灰色),点”启动实例”等几分钟就行。然后记一下公网IP,这串数字就像服务器的”门牌号”,后面连接和访问都要用到,最好复制保存到记事本里。
最容易被忽略的是安全组配置。服务器默认只开放22端口(用于远程连接),但网站访问需要80端口(HTTP)和443端口(HTTPS),如果是小程序后端或API项目,可能还需要3000、8080这类端口。你可以进入服务器的”安全组”设置,点”配置规则”,手动添加这几个端口:协议选”TCP”,端口范围填”80/80″,授权对象填”0.0.0.0/0″(允许所有人访问),备注写”网站访问”。阿里云官方文档里也强调过:”Web服务部署前需确保80/443端口在安全组中开放,否则外部无法访问”(查看阿里云安全组文档{rel=”nofollow”})。
最后检查登录凭证:如果你是用”密码”登录服务器,确认密码没记错(忘了可以在控制台重置);如果用”密钥对”,确保本地保存了.pem或.ppk格式的密钥文件,而且权限设置正确(Windows右键文件属性,安全里只保留当前用户权限;Mac/Linux用命令chmod 400 密钥文件名
)。
本地工具:3类工具按需选,新手优先用可视化工具
传源码到服务器的工具分两类:可视化工具(点点鼠标就能传)和命令行工具(需要敲代码)。我 新手优先用可视化工具,上手快、不容易出错;如果你熟悉命令行,也可以用,但要注意别输错命令——之前有个朋友用scp命令传文件,把服务器路径输成了本地路径,结果把自己电脑里的文件删了,差点哭出来。
下面这张表整理了不同系统适用的工具,你可以根据自己的情况选:
工具类型 | 推荐工具 | 适用系统 | 优点 | 注意事项 |
---|---|---|---|---|
FTP客户端(可视化) | FileZilla | Windows/Mac/Linux | 免费、功能全、支持断点续传 | 连接时端口填21(FTP)或22(SFTP) |
FTP客户端(可视化) | WinSCP | Windows | 界面简洁、支持拖拽、集成命令行 | 首次连接可能提示”主机密钥未知”,选”是”即可 |
FTP客户端(可视化) | Transmit | Mac | 颜值高、传输速度快、支持多种协议 | 付费软件(约300元),有7天试用 |
命令行工具 | scp命令 | Mac/Linux/Windows(PowerShell) | 无需安装、适合批量操作 | 命令格式:scp 本地文件路径 用户名@IP:服务器路径 |
表:不同系统适用的源码上传工具对比,新手优先推荐FileZilla(免费且跨平台)
除了文件传输工具,你可能还需要远程连接工具来执行命令(比如解压文件、改权限)。Windows用户可以用PuTTY(免费),Mac/Linux直接用系统自带的Terminal。如果觉得命令行麻烦,也可以装个宝塔面板——这是个可视化服务器管理工具,能帮你一键安装Nginx、MySQL,还能直接在网页上上传文件、改权限,对新手特别友好。安装方法很简单,用远程工具连接服务器后,输入宝塔的安装命令(CentOS系统:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
),按提示操作5分钟就能装好,后面部署PHP、WordPress这类项目会方便很多。
源码本地整理:这3类文件别上传,否则白忙活
源码上传前,一定要在本地做好”精简”——我之前帮一个做React项目的朋友部署,他直接把整个项目文件夹拖进去,结果node_modules占了2G多,传了半小时还出错,后来删掉重传,10分钟就搞定了。你可以按这几步整理:
先在本地确认项目能正常运行:比如静态网站打开index.html看看有没有乱码,PHP项目用XAMPP跑一下有没有报错,Node.js项目用npm start
测试能不能启动。本地都跑不起来的项目,传到服务器肯定也不行,别浪费时间。
然后压缩成zip包(推荐zip格式,服务器上解压命令最通用)。压缩时注意排除这几类文件:
npm install
或composer install
),既能减小文件体积,又能避免本地依赖和服务器环境不兼容的问题; 最后记住源码的入口文件:静态网站通常是index.html,PHP项目是index.php,Node.js项目可能是app.js或server.js——后面配置服务器时需要指定这个入口文件,不然访问时会提示”403 Forbidden”(没有权限)或”404 Not Found”(找不到文件)。
实操步骤:从连接到验证,8步走完部署全流程
准备工作做好后,接下来就是实际操作了。我把整个流程拆成了8步,每步都标了”重点注意事项”,你跟着做就行。如果中间遇到问题,别慌——我会把常见错误和解决办法也列出来,都是我帮人部署时踩过的坑,照着改基本都能解决。
第1步:连接服务器(以FileZilla为例,30秒搞定)
打开FileZilla,顶部有个”快速连接”栏,需要填4个信息:
填完点”快速连接”,如果一切正常,底部状态栏会显示”状态:已连接”,左侧是你本地电脑的文件(可以导航到源码所在的文件夹),右侧是服务器的文件(默认显示/root目录)。
常见错误及解决办法
:
第2步:上传源码(拖放就能传,大文件注意这一点)
连接成功后,先在服务器端创建一个存放源码的文件夹——推荐放在/www/wwwroot(如果装了宝塔面板,这个目录是默认网站根目录),没有的话可以自己建(右键-创建目录,比如取名myproject)。然后在本地找到整理好的源码压缩包(比如project.zip),直接拖到右侧服务器的myproject文件夹里,底部会显示传输进度。
如果你的源码比较大(超过100MB), 勾选FileZilla的”编辑-设置-传输-启用断点续传支持”,这样传输中断后可以继续传,不用从头开始。 传输时最好别断开网络或关闭软件——我之前帮一个客户传一个500MB的视频网站源码,传了一半他不小心关了FileZilla,结果重传又花了20分钟,特别耽误事。
第3步:解压源码(命令行3行代码搞定,不会命令用宝塔)
文件传完后,需要把压缩包解压到服务器上。如果你装了宝塔面板,直接在面板的”文件”里找到压缩包,右键”解压”就行;没装的话,用远程连接工具(PuTTY或Terminal)连接服务器,输入命令操作。
以Linux系统为例,先进入存放压缩包的目录:cd /www/wwwroot/myproject
(把路径换成你自己的文件夹),然后输入解压命令:unzip project.zip
(如果提示”command not found”,说明没装unzip,先输入yum install -y unzip
安装,再解压)。解压完成后,服务器文件夹里会多出一个和压缩包同名的文件夹,里面就是你的源码文件了。
小技巧
:如果想把文件直接解压到当前目录(不生成子文件夹),可以用unzip project.zip -d ./
;如果是tar.gz格式的压缩包,用tar -zxvf project.tar.gz
命令解压。
第4步:配置文件权限(这步错了,网站可能打不开或被黑)
文件解压后,一定要检查权限——很多人部署后网站打不开,或者能打开但样式错乱,十有八九是权限没配对。服务器上的文件权限用数字表示,比如755、644,你不用记太复杂的规则,记住这两个就行:
设置方法很简单,用远程工具连接服务器后,进入源码所在目录,输入命令:
chmod -R 755 ./
(设置当前目录下所有文件夹为755权限) find ./ -type f -exec chmod 644 {} ;
(设置当前目录下所有文件为644权限)
为什么不能用777权限?因为777表示”所有人都能读写执行”,相当于把服务器大门敞开——上个月帮一个做WordPress博客的朋友部署,他图省事设了777,结果第二天网站就被挂马了,后来改成755+644才没事。阿里云官方文档也明确提醒:”生产环境中应避免使用777权限,这可能导致文件被恶意篡改”(查看阿里云权限配置文档{rel=”nofollow”})。
第5步:不同项目类型的额外配置(静态/PHP/Node.js各有讲究)
源码传好、权限配完后,大部分静态网站(只有HTML/CSS/JS)已经能访问了——在浏览器输入服务器公网IP,应该能看到你的网页。但如果是动态项目(PHP、Node.js、Python等),还需要一些额外步骤。
静态网站(HTML/CSS/JS)
:最简单,直接访问IP即可。如果想绑定域名,在阿里云域名控制台做”域名解析”(添加A记录,记录值填服务器IP),等10分钟生效后,就能用域名访问了。 PHP项目(比如WordPress、ThinkPHP):需要服务器安装PHP和Web服务器(Nginx或Apache)。如果你装了宝塔面板,在”软件商店”搜索”LNMP”(Linux+Nginx+MySQL+PHP)一键安装,然后在”网站”里”添加站点”,域名填你的域名(或IP),根目录选源码所在的文件夹(比如/www/wwwroot/myproject),PHP版本选项目需要的版本(比如7.4),提交后就能访问了。 Node.js项目(比如Express、Vue+Node后端):需要先在服务器安装Node.js。用远程工具连接服务器后,输入curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
(安装Node 16.x版本),再输入apt install -y nodejs
,装完用node -v
检查是否安装成功。然后进入源码目录,输入npm install
安装依赖,最后用node app.js
(app.js换成你的入口文件)启动项目。不过这样关闭命令行后项目会停止,推荐用pm2工具后台运行:npm install -g pm2
,然后pm2 start app.js
,这样就算断开连接,项目也能一直运行。
第6步:验证部署结果(3种方式检查是否成功)
部署完别急着关工具,一定要验证是否正常运行。你可以用这3种方法检查:
我上个月帮一个做在线简历的朋友部署静态网站,传完后访问IP显示”403 Forbidden”,检查发现他把源码放在了/root目录(权限严格),后来移到/www/wwwroot就好了——服务器不同目录的权限默认设置不一样,放/www/wwwroot是最稳妥的选择。
按照这些步骤做完,你的项目应该已经能在网上访问了。如果中间遇到任何问题,比如某个步骤卡住了,或者报错不知道怎么解决,欢迎在评论区告诉我具体情况(比如用的什么工具、报错提示是什么),我看到都会回复。对了,如果你用的是腾讯云、华为云这类其他服务器,或者部署的是Python、Java这类特殊项目
你有没有遇到过这种情况?源码明明传上去了,输服务器IP却只看到浏览器转圈圈,最后蹦出个“无法访问此网站”?我之前帮一个做个人博客的朋友排查过,他折腾了一上午,又是重装服务器又是重传源码,结果发现就是个小细节没注意——这种问题其实不用慌,按这几个方向查,90%的情况都能解决。
先看服务器的“门禁卡”有没有开对。安全组就像服务器的防盗门,80端口(HTTP)和443端口(HTTPS)是网站的“大门钥匙”,没开的话外面根本进不来。你登录阿里云控制台,点“云服务器ECS”,找到你的服务器实例,旁边有个“安全组”选项,点进去选“配置规则”,然后点“手动添加”。协议选TCP,端口范围填“80/80”,授权对象写“0.0.0.0/0”(意思是所有人都能访问),备注就写“网站访问”,443端口也这么加一遍。我那个朋友就是漏了这步,安全组只开了22端口(远程连接用的),结果外面根本访问不到,加完端口5分钟就好了。对了,服务器本身得是“醒着”的——同样在控制台“实例”页面,看看那个绿色的小圆圈是不是写着“运行中”,如果是灰色的“已停止”,点“启动实例”等几分钟就行,别像我另一个朋友,服务器都没开就急着访问,白等半天。
除了端口和服务器状态,入口文件搞错了也会让网站“迷路”。你想啊,服务器收到访问请求,总得知道先看哪个文件吧?静态网站(就HTML/CSS/JS那种)得有index.html,PHP项目(比如WordPress)得有index.php,Node.js项目可能是app.js或者server.js——这些文件得放在服务器的“根目录”里,比如/www/wwwroot或者你自己建的项目文件夹根目录,不能藏在子文件夹里。之前有个做在线简历的同学,把源码解压到了二级文件夹,服务器找不到index.html,就提示“403禁止访问”,后来把文件挪到根目录就好了。还有种情况,你传的是压缩包但没解压,服务器看到的是project.zip,自然打不开——记得用unzip命令解压,或者在宝塔面板里右键“解压到当前目录”,让服务器能“看到”那些源码文件。
Windows和Mac系统分别推荐用什么工具上传源码到服务器?
Windows系统推荐用WinSCP(免费、支持拖拽和命令行集成)或FileZilla(跨平台、功能全);Mac系统推荐FileZilla(免费)或Transmit(付费,传输速度快、界面友好)。新手优先选FileZilla,跨平台且操作简单,支持FTP和SFTP协议,能满足大部分上传需求。
上传源码后网站打不开,提示“无法访问此网站”,可能是什么原因?
最常见的原因有三个:①安全组未开放80/443端口(进入阿里云服务器安全组配置,添加TCP:80/443端口,授权对象设为0.0.0.0/0);②未设置正确的入口文件(比如静态网站需确保根目录有index.html,PHP项目需有index.php);③服务器未运行(登录阿里云控制台检查实例状态是否为“运行中”)。可按这三个方向依次排查。
服务器文件权限应该设置多少?为什么不 用777权限?
推荐文件夹权限设为755(所有者可读可写可执行,其他用户可读可执行),文件权限设为644(所有者可读可写,其他用户只读)。777权限表示“所有用户都能读写执行”,相当于开放服务器全部权限,容易被恶意篡改文件或植入病毒。阿里云官方文档明确提醒:“生产环境中应避免使用777权限,可能导致网站被挂马或数据泄露”。
如何把域名和服务器绑定,用域名访问已部署的网站?
分两步:①域名解析:登录阿里云域名控制台,进入“域名解析”,添加A记录(主机记录填@或www,记录值填服务器公网IP,TTL设为10分钟);②服务器绑定域名:若用宝塔面板,进入“网站-添加站点”,域名栏填你的域名(如example.com),根目录选源码所在文件夹,提交即可。解析生效后(通常10-30分钟),就能用域名访问网站了。
源码文件太大(超过1GB),上传时总是中断或失败怎么办?
可分三种方法解决:①分卷压缩:用WinRAR或7-Zip将源码分卷压缩(如每个分卷500MB),上传后在服务器用“cat 分卷文件* > 合并文件.zip”命令合并解压;②启用断点续传:在FileZilla设置中勾选“传输-启用断点续传支持”,中断后可继续上传;③服务器直接下载:若源码有网络链接(如GitHub仓库),用远程工具连接服务器,输入“wget 源码URL”直接下载,避免本地传输耗时。