
云服务器部署源码的完整流程
一、前期准备工作
阿里云/腾讯云轻量应用服务器最划算,1核2G配置足够跑中小型项目。记得选CentOS 7.9或Ubuntu 20.04这些长期支持版本,避免兼容性问题。
二、环境配置详解
# CentOS示例
yum install -y git nginx php-fpm mysql-server
Ubuntu示例
apt-get install -y python3-pip nodejs
环境类型 | 安装命令 | 适用场景 |
---|---|---|
Python | pip install virtualenv | Django/Flask项目 |
Node.js | nvm install 16 | Vue/React前端 |
Java | yum install java-11 | SpringBoot服务 |
三、代码上传实战技巧
先在服务器生成SSH密钥:
ssh-keygen -t rsa
git clonecat ~/.ssh/id_rsa.pub
把公钥添加到GitHub/GitLab,然后直接
压缩包上传 用WinSCP拖拽上传zip包后:
bash
unzip project.zip
chmod -R 755 ./project
nohup python app.py &
四、服务启动与维护
进程管理方案 基础方案:
进阶方案:用Supervisor守护进程
ini
[program:myapp]
command=python /path/to/app.py
autostart=true
域名绑定要点 修改Nginx配置时注意:
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
### 五、常见报错解决方案
netstat -tunlp | grep 80端口占用
查占用进程,
kill -9 PID结束进程
权限问题 给项目目录赋权:
bash
chown -R www-data:www-data /var/www
chmod -R 755 storage
依赖缺失 Python项目记得:
bash
pip install -r requirements.txt
高阶部署方案选型
Docker化部署
dockerfile
FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 5000
CMD [“python”, “app.py”]
### CI/CD自动化
GitHub Actions配置示例:
yaml
name: Deploy
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
遇到域名解析后网站无法访问的情况,先别急着重装系统。最直接的方法是打开电脑的cmd窗口,输入ping 你的域名
,看看返回的IP是不是你服务器的真实IP。如果显示的不是你的服务器IP,那肯定是解析还没生效,这时候只能耐心等待,因为DNS全球同步确实需要2-48小时不等,特别是海外服务器可能更久。
要是ping出来的IP是对的,但网站还是打不开,那就要分几步排查了。国内服务器必须完成ICP备案才能访问,这个在阿里云/腾讯云后台都能查到备案状态。另外特别注意Nginx配置里的细节,很多人习惯性只写server_name example.com
,但实际应该把www和非www的域名都写上,比如server_name example.com www.example.com
。有时候浏览器缓存也会捣乱,记得用无痕模式或者换个设备试试。
常见问题解答
为什么我的代码上传后无法访问?
通常是权限或端口配置问题导致的。检查项目目录权限是否设置为755,确认服务器安全组已开放对应端口(如80/443),同时查看Nginx/Apache等Web服务是否正常启动。
部署Python项目时提示”No module named xxx”怎么办?
这说明缺少Python依赖包。 在服务器使用pip install -r requirements.txt
安装全部依赖,如果使用虚拟环境,记得先激活虚拟环境再安装。
如何选择1核2G和2核4G的服务器配置?
1核2G适合日访问量1000以下的小型网站或测试环境;2核4G能支撑5000-10000PV的中型项目。如果预算有限,可以先选低配,后续再升级。
宝塔面板和手动部署哪个更好?
新手 先用宝塔面板,图形化操作更友好;有Linux基础的用户推荐手动部署,灵活性更高。生产环境 两者结合,用宝塔管理站点,手动配置关键服务。
域名解析后网站还是打不开?
首先ping域名看是否解析到正确IP,然后检查域名是否备案(国内服务器必需),最后确认Nginx配置中server_name是否填写了完整域名。整个过程可能需要2-48小时生效。