适用人群说明
这篇文章写给你——一个刚买完域名、看着控制台发懵的纯新手,或者被各种“一键部署”工具惯坏、但想搞懂底层逻辑的进阶小白,如果你连服务器都没碰过,或者只知道上传下载文件,那正好,跟着我一步步来,手动部署不是为了炫技,而是为了让你在出问题时能自己拔刀,而不是对着客服哭。
第一步:买服务器和域名,别当冤大头
从零到一,手把手教你手动部署一个网站(附避坑指南)
- 服务器:选云服务器商(阿里云、腾讯云、AWS Lightsail等都行),新手别碰大厂复杂的VPC网络,直接选“轻量应用服务器”或“Lightsail”,自带公网IP,系统选Ubuntu 22.04 LTS,别问为什么,问就是生态好、教程多、坑少,配置:1核1G够跑静态站或小博客,2核2G能带WordPress带得动。
- 域名:随便一家注册商买,.com或.top便宜就行,关键步骤:把域名解析(DNS)里的A记录指向你的服务器公网IP,等待生效(几分钟到几小时),如果解析后ping不通,别慌,多半是没加“@”记录或填错IP。
第二步:连上服务器,先做“消毒”
用SSH工具(Windows用Xshell,Mac直接用终端)登录服务器:
ssh root@你的服务器IP
登录后第一件事:改密码,然后更新系统(防漏洞):
sudo apt update && sudo apt upgrade -y
接下来安装一个必要的工具——Nginx(网页服务器)和UFW(防火墙):
sudo apt install nginx ufw -y
sudo ufw allow 'Nginx Full'
sudo ufw enable
踩坑提醒:很多人直接打开浏览器访问IP,发现打不开——十有八九是没放行防火墙端口,或者云服务商的安全组没开80/443端口,去你的云控制台,找到“安全组”或“防火墙规则”,放行80(HTTP)和443(HTTPS)。
第三步:手动上传网站文件,别用鼠标拖
这里有个关键点:你要做的事是把html文件放到/var/www/html/目录下。
我推荐用WinSCP(Windows)或scp命令(Mac/Linux)上传文件,Mac终端:
scp -r /你的本地网站文件夹 root@服务器IP:/var/www/html/
上传完,改权限:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
然后测试本地服务:浏览器访问 http://你的服务器IP,应该能看到你的静态页面,如果看到Nginx默认欢迎页,说明你已经成功了一半——因为服务器在工作,只是路径没对。
第四步:绑域名 + 配SSL,让网站“锁”起来
用Nginx配置文件绑域名,新建一个配置文件:
sudo nano /etc/nginx/sites-available/你的域名
server {
listen 80;
server_name 你的域名 www.你的域名;
root /var/www/html;
index index.html;
}
保存后,建立软链接并测试:
sudo ln -s /etc/nginx/sites-available/你的域名 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
这时候用域名访问,如果打不开,去云服务商处确认域名解析是否生效(用ping 你的域名看看IP对不对)。
HTTPS(SSL证书):别去申请那种要开箱的付费证书,用Let's Encrypt免费证书,一行命令搞定:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d 你的域名 -d www.你的域名
跟着交互流程填邮箱、同意条款,证书自动配好,Nginx自动重定向HTTP到HTTPS。踩坑提醒:如果certbot报错“DNS验证失败”,大概率是你的域名解析还没全球生效,等半小时再试。
第五步:常见病“重灾区”清单(别问我怎么知道的)
- 页面不刷新:改完文件后清浏览器缓存,或启用Nginx的
sendfile off(在配置文件里加上,防止静态文件缓存)。 - 端口被占:如果你先装了Apache又装Nginx,会冲突,用
sudo systemctl stop apache2停掉它。 - 数据库装不上:如果你手动装WordPress,需要装MySQL:
sudo apt install mysql-server php php-mysql -y然后建库建用户——别把数据库密码设成123456,否则你离被入侵就差一个扫描工具的距离。
- 上传文件权限不足:每次上传后都执行一次
sudo chown www-data:www-data /var/www/html -R。
手动部署的灵魂是“日志”
遇到问题不要瞎猜,看日志:/var/log/nginx/error.log,错误信息会告诉你一切,真的,九成问题都写在日志里,剩下的,就是你忘了重启服务:
sudo systemctl restart nginx



发表评论