将一份开源源码(无论是PHP、Java、Node.js还是Python项目)部署到云服务器上,是让网站真正“跑起来”并对外提供服务的必经之路。
为了适应不同技术水平的需求,本教程提供两条主流路线:
2核2G 3M带宽;企业站/小型商城选 2核4G 5M带宽。.com 或 .cn)。这是新手最容易卡住的一步:端口没开,网站死活访问不了。
22 (SSH远程连接)80 (HTTP网站访问)443 (HTTPS加密访问)3306 (MySQL数据库,建议仅对内网或指定IP开放,切勿对全网开放)3000,Java 的 8080,Python 的 8000)
目前主流面板有 宝塔面板 (BT) 和 1Panel(2025-2026年爆火的现代化开源面板,基于Docker)。
# 宝塔面板安装命令(需去官网获取最新链接) wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
如果你下载的开源项目根目录包含 docker-compose.yml 文件,请无脑选择此方案,能省去99%的环境配置麻烦。
# 一键安装Docker脚本 curl -fsSL https://get.docker.com | bash -s docker # 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker
git clone https://github.com/xxx/your-project.git.zip)上传至服务器 /www/wwwroot/your_site 目录并解压。mydb),并记下数据库名、用户名、密码。.sql 文件导入数据库(可通过面板自带的 phpMyAdmin 导入,或使用命令行):mysql -u root -p mydb < /path/to/your/database.sql
找到源码中的环境配置文件(通常名为 .env、config.php、application.yml 等),将里面的数据库连接信息修改为你刚才创建的:
DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=mydb DB_USERNAME=root DB_PASSWORD=your_strong_password
npm install -> npm run buildcomposer installpip install -r requirements.txt你的代码跑起来后,通常只是监听了本地的某个端口(比如 localhost:8080)。你需要通过 Nginx 将外部域名请求“转发”给这个端口。
PM2 进程守护工具运行,防止终端关闭后项目挂掉。npm install -g pm2 pm2 start app.js --name "my_website"
docker-compose up -d
在宝塔/1Panel面板中“添加站点”,填入你的域名。然后修改该站点的 Nginx 配置文件,核心逻辑如下:
server {
listen 80;
server_name www.yourdomain.com; # 你的域名
location / {
proxy_pass http://127.0.0.1:8080; # 你的项目本地运行端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 如果是Vue/React等单页应用(SPA),需要加上这段防止刷新404
location / {
try_files $uri $uri/ /index.html;
}
}如果是纯静态HTML或PHP项目,Nginx的 root 目录直接指向你的源码 public 或根目录即可,无需 proxy_pass。
@ 和 www 指向你的服务器公网IP。www 或 nginx)对 uploads、storage、logs 等目录有写权限:chmod -R 755 /www/wwwroot/your_site。22334),能挡住90%的自动化暴力破解脚本。3306 端口绝对不要在安全组中对 0.0.0.0/0 开放。总结:
如果你是第一次部署,强烈建议购买一台轻量应用服务器,直接安装1Panel或宝塔面板,跟着面板的可视化界面点选,能帮你屏蔽掉底层Linux复杂的命令行配置,将部署时间从几天缩短到1-2小时。