把程序部署到云服务器并成功运行,核心答案就一句话:买一台云服务器,装好环境,把代码传上去,启动进程,再配好防火墙和安全组就这么简单。但为什么这么多人卡在最后一步?因为你缺的不是步骤,而是对整体流程的理解,下面我把这条路上的每一个坑都提前帮你踩平。
云服务器部署网站从零开始,先搞清楚你要买什么
很多人上来就问“怎么部署”,其实第一步卡在选服务器,你手里是一台Windows的电脑,不代表云服务器也得是Windows。绝大多数程序跑在Linux上,因为稳定、省内存、还免费,如果你的程序是.NET系或者必须用Windows图形界面,那才选Windows Server。
轻量应用服务器和云服务器区别,到底选哪个
这是百度上被问烂的问题,行业共识认为,新手买轻量应用服务器就够了,它相当于“精装修”的云服务器,自带镜像市场,你可以在里面一键装好WordPress、宝塔面板、Docker运行环境,而传统云服务器是“毛坯房”,要从零开始敲命令装环境,如果你的目标是“把程序跑起来”,不是“学运维”,听我一句,选轻量。
预算这块,国内主流厂商的新用户活动价,轻量服务器一年的费用通常在百元级,云服务器入门款也就两三百一年,别一上来就买几千块的高配,程序跑不动再加钱升级,比你一步到位省钱得多。
地域选择要靠近你的目标用户,你的程序给国内用户用,就选华东、华南、华北的节点,访问速度快,你要是自己做着玩,那选最便宜的就行,买的时候记得看“固定带宽”还是“按流量计费”,个人项目选固定带宽,比如3Mbps,够用了。
程序部署到云服务器完整流程:从连接到上传
假设你已经买好了服务器,拿到了公网IP、账号密码,下面开始正式操作,整个过程你可以理解为:你去租了一间毛坯房(云服务器),现在要通水电(装环境)、搬家具(传代码)、开灯(启动服务)。
第一步:用SSH连上你的服务器
Windows用户打开自带的PowerShell或者CMD,Mac用户打开终端,输入:
ssh root@你的服务器IP
然后输入密码,回车,看到[root@xxxx ~]#这样的提示符,就算登进去了,这里提醒一下,密码输入时不显示字符是正常的,别以为自己键盘坏了。
如果你嫌命令行太硬核,那就装一个宝塔面板,绝大多数云厂商的镜像市场里都有宝塔的现成镜像,选它重装系统,然后通过浏览器访问http://你的IP:8888,图形化操作,点鼠标就能装环境。我个人推荐新手用宝塔,能省掉80%的报错。
第二步:装运行时环境
你的程序是PHP写的?那要装Nginx和PHP,是Java写的?那要装JDK和Tomcat或Spring Boot运行环境,是Python写的?那要装Python解释器和Gunicorn这类WSGI服务器。
用宝塔的话,在软件商店里一键安装,手工命令的话,以CentOS或Ubuntu为例:
# Ubuntu系统示例 sudo apt update sudo apt install nginx -y sudo apt install python3 -y
装完之后,用nginx -v验证一下是否成功,这个小细节能让你及时发现装错系统的问题。
第三步:把代码传到服务器上
方法有很多种,我列几个常用的,按推荐程度排序:
- 宝塔文件管理器:直接网页上传zip压缩包,然后解压,最省事。
- Git拉取:
git clone https://你的仓库地址,前提是你代码放在GitHub/Gitee上。 - SCP命令:在本地终端执行
scp -r ./你的项目 root@IP:/www/wwwroot/,适合批量传文件。 - SFTP工具:用WinSCP这类客户端,拖拽上传,适合不喜欢命令行的朋友。
传到哪个目录?建议统一放到/www/wwwroot/下,宝塔默认就认这个目录,手工部署的,放/opt/或/var/www/也都可以,只要你后面配置的时候能找到就行。
第四步:配置环境变量和依赖
这是最容易出问题的一步,很多程序不是传上去就能跑的,它需要知道数据库密码、各种密钥。.env文件或者配置文件里的地址,必须从
localhost改成你的数据库实际地址,你的数据库也在同一台服务器上,那填localhost没问题,如果是单独的云数据库,就要填那个数据库的公网地址。
依赖安装也要做,Node.js程序要执行npm install,Python程序要执行pip install -r requirements.txt,这些步骤必不可少,缺了直接启动报错。
第五步:启动程序并保持后台运行
最简单的方式是在SSH窗口直接运行启动命令,比如python app.py,但这样窗口一关程序就停了,你需要让程序在后台运行:
nohup python app.py > app.log 2>&1 &
或者用systemd写一个服务文件,让它开机自启、崩了自动重启,宝塔里有进程守护管理器插件,图形化操作,填个启动命令就行。
Node.js程序推荐用PM2,操作非常顺滑:
npm install pm2 -g pm2 start app.js pm2 save
PM2的优势在于它帮你管理日志和进程状态,出错了能用pm2 logs直接看原因。
部署云服务器失败?99%的问题出在三个地方
程序本地跑得好好的,一上服务器就挂。无非是这三个原因,你按顺序排查就行。
端口没放行,外面连不上
服务器有两个“门卫”:一个是云厂商控制台的安全组,一个是服务器内部的防火墙,两个都得放行你的程序端口。
比如你的程序跑在8080端口,
- 去云控制台找到“安全组”或“防火墙”配置,添加入站规则,放行TCP的8080端口。
- 在服务器里面执行
firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload(CentOS系统)。
操作完用浏览器访问http://你的IP:8080试试,还是不通?用telnet 你的IP 8080测试端口通不通。
数据库连接不上
大多数程序的启动日志里,报错最多的就是数据库连接失败,检查数据库服务有没有启动、账号密码对不对、数据库是否允许远程连接,MySQL默认只监听本机,你需要改配置文件里的
bind-address,或者直接在宝塔面板里关闭数据库的“禁止远程连接”开关。
日志文件才是真正的排错大师
所有启动失败的问题,最终都能从日志文件里找到答案,别猜,去看日志,用tail -f /www/wwwroot/项目名/logs/app.log,实时滚动输出,哪里报错一目了然。
云服务器部署Java项目的几点补充
Java项目部署频率比较高,单独拎出来说几句,Spring Boot项目打成jar包,用java -jar xxx.jar &启动就行。如果你用的是8080端口,记得看安全组有没有放行,我见过太多人本地跑通了,到服务器上就是访问不了,最后发现是安全组没配置,真的非常可惜。
Q&A:关于云服务器部署的几个高频问题
问:个人博客部署云服务器要花多少钱?
答:一台轻量应用服务器,某云厂商新用户首年价格在百元左右,续费会贵一些,正常几百块一年,域名首年可能需要一二十块,备案是免费的,但周期大约需要一到两周,总预算控制在三五百块以内,个人站点可以运行一整年,如果想省掉域名和备案的麻烦,直接用IP访问也可以,一样能公网访问,就是不够体面。
问:买云服务器还是轻量应用服务器?
答:想快速跑起来就买轻量应用服务器,自带图形化面板和运行环境,新手友好得多,云服务器适合需要自定义网络架构或玩虚拟化的场景。绝大多数个人项目包含小企业官网,轻量应用服务器都是更划算的选择,这两种机型除了管理入口不同,底层硬件没有本质区别。
问:程序部署完了,怎么验证它确实在正常运行?
答:用浏览器打开http://你的IP:端口,能正常看到页面就算成功,然后运行ps aux | grep 你的程序名确认进程存在,再试一下重启服务器之后程序是否还在,这个验证很关键,很多人刚部署时一切正常,一重启就找不上官网了,原因就是没配自启动,做一次完整的重启验证,确认程序能自动恢复,部署才算真正结束。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/611285.html




