不安装宝塔面板,你仍然可以手动部署项目。以下是常见的 Linux 服务器环境下(以 CentOS、Ubuntu 为例)手动部署 Web 项目的通用方法,适用于前后端分离项目(如 Vue + Spring Boot、React + Node.js 等)或 PHP 项目。
🧱 一、准备环境
1. 安装操作系统
推荐使用:
- CentOS 7/8
- Ubuntu 20.04 / 22.04
🔧 二、安装基础运行环境
1. 安装 Nginx(反向X_X & 静态资源服务)
# Ubuntu:
sudo apt update
sudo apt install nginx
# CentOS:
sudo yum install epel-release
sudo yum install nginx
启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
2. 安装数据库(MySQL 或 MariaDB)
MySQL 示例:
# Ubuntu:
sudo apt install mysql-server
sudo mysql_secure_installation
# CentOS:
sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
3. 安装后端语言环境
Java(Spring Boot 项目):
sudo apt install openjdk-11-jdk # Ubuntu
sudo yum install java-11-openjdk # CentOS
Node.js(Node.js 项目):
# 使用 nvm 安装多个版本更方便
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 18
Python(Flask/Django):
sudo apt install python3-pip # Ubuntu
sudo yum install python3 # CentOS
PHP(PHP 项目):
# Ubuntu:
sudo apt install php php-fpm php-mysql
# CentOS:
sudo yum install php php-fpm php-mysqlnd
📁 三、上传和部署项目
1. 前端项目(Vue/React/Angular)
构建为静态文件(如 dist/),上传到服务器,例如:
scp -r dist user@your_server_ip:/var/www/html/myapp
配置 Nginx 指向该目录:
server {
listen 80;
server_name your_domain;
location / {
root /var/www/html/myapp;
index index.html;
try_files $uri $uri/ =404;
}
}
重启 Nginx:
sudo systemctl restart nginx
2. 后端项目(Java/Spring Boot)
打包为 jar 包,上传到服务器:
nohup java -jar your-app.jar > app.log 2>&1 &
可使用 systemd 创建守护进程。
3. 后端项目(Node.js)
上传代码后:
npm install
npm run start # 或 pm2 start app.js
建议使用 PM2 管理 Node.js 进程。
4. 后端项目(Python Flask/Django)
使用 Gunicorn + Nginx 反代:
pip install gunicorn
gunicorn myapp:app
Nginx 配置反向X_X:
location / {
proxy_pass http://127.0.0.1:8000;
}
5. 后端项目(PHP)
上传代码到 /var/www/html/project,配置 Nginx:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
🔐 四、配置防火墙和域名绑定
开放端口:
sudo ufw allow 80,443/tcp # Ubuntu
sudo firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload # CentOS
绑定域名:
在域名服务商添加 A 记录指向服务器 IP。
🔄 五、配置 HTTPS(可选)
使用 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
✅ 总结:手动部署优势
| 优点 | 说明 |
|---|---|
| 更轻量 | 不依赖面板工具 |
| 更灵活 | 可自由定制服务配置 |
| 更安全 | 减少第三方软件漏洞风险 |
| 提升技能 | 学习 Linux 和 Web 架构 |
如果你告诉我你要部署的项目类型(如 Vue + Spring Boot、Django、WordPress 等),我可以给出更具体的步骤!
是否需要我为你写一个完整的部署脚本或教程?
CDNK博客