在Linux系统中部署Web项目是运维和开发人员必备的技能,涉及环境搭建、项目上传、服务配置及启动等多个环节,以下是详细的部署流程及常用命令,涵盖主流Web服务器(如Nginx、Apache)和应用服务器(如Tomcat、Node.js)的部署方法,同时包含权限管理、服务监控等实用操作。

基础环境准备
-
更新系统软件包
部署前需确保系统软件包为最新版本,避免依赖冲突:sudo apt update && sudo apt upgrade -y # Debian/Ubuntu系统 sudo yum update -y # CentOS/RHEL系统
-
安装必要工具
包括文件传输工具(如lrzsz)、编辑器(如vim)及编译工具:sudo apt install lrzsz vim gcc -y # Debian/Ubuntu sudo yum install lrzsz vim gcc -y # CentOS/RHEL
-
安装Web服务器
- Nginx安装(推荐高并发场景):
sudo apt install nginx -y # Debian/Ubuntu sudo yum install nginx -y # CentOS/RHEL sudo systemctl start nginx # 启动服务 sudo systemctl enable nginx # 设置开机自启
- Apache安装(兼容性较好):
sudo apt install apache2 -y # Debian/Ubuntu sudo yum install httpd -y # CentOS/RHEL sudo systemctl start httpd # 启动服务 sudo systemctl enable httpd # 设置开机自启
- Nginx安装(推荐高并发场景):
项目文件上传与解压
-
上传项目文件
(图片来源网络,侵删)- 使用
rz命令上传本地文件(需提前安装lrzsz):rz -be # 上传并覆盖同名文件
- 或通过
scp从远程服务器传输:scp -r /local/project user@remote:/opt/webapp # 本地到远程
- 使用
-
解压与移动文件
tar -zxvf project.tar.gz # 解压.tar.gz文件 unzip project.zip # 解压.zip文件 sudo mv project/* /var/www/html/ # 移动至Web根目录(Nginx/Apache默认)
配置Web服务器
-
Nginx配置
编辑配置文件(如/etc/nginx/sites-available/default):server { listen 80; server_name your_domain.com; root /var/www/html; # 项目根目录 index index.html index.jsp; # 默认首页 location / { try_files $uri $uri/ =404; # 处理前端路由 } location /api/ { # 后端代理 proxy_pass http://localhost:8080; proxy_set_header Host $host; } }配置完成后检查语法并重启服务:
sudo nginx -t # 检查配置文件语法 sudo systemctl reload nginx # 重载配置
-
Apache配置
编辑/etc/apache2/sites-available/000-default.conf:
(图片来源网络,侵删)<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html # 项目根目录 <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All # 启用.htaccess Require all granted </Directory> </VirtualHost>启用模块并重启服务:
sudo a2enmod rewrite # 启用重写模块 sudo systemctl restart apache2 # 重启服务
部署应用服务器
-
Java项目(Tomcat)
- 安装JDK与Tomcat:
sudo apt install openjdk-11-jdk -y # 安装JDK wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz sudo tar -zxvf apache-tomcat-9.0.65.tar.gz -C /opt/ sudo ln -s /opt/apache-tomcat-9.0.65 /opt/tomcat # 创建软链接
- 部署WAR包:
sudo cp project.war /opt/tomcat/webapps/ # 放入webapps目录 sudo /opt/tomcat/bin/startup.sh # 启动Tomcat
- 安装JDK与Tomcat:
-
Node.js项目
- 安装Node.js(通过nvm管理版本):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash source ~/.bashrc nvm install 16.15.0 # 安指定版本
- 部署项目并启动:
npm install # 安装依赖 pm2 start app.js --name "webapp" # 使用PM2守护进程 pm2 save && pm2 startup # 设置开机自启
- 安装Node.js(通过nvm管理版本):
权限与安全配置
-
设置目录权限
sudo chown -R www-data:www-data /var/www/html # Nginx/Apache用户 sudo chmod -R 755 /var/www/html # 目录755,文件644
-
防火墙与端口开放
sudo ufw allow 80/tcp # 允许HTTP端口 sudo ufw allow 443/tcp # 允许HTTPS端口 sudo ufw enable # 启用防火墙
服务监控与日志排查
-
查看服务状态
sudo systemctl status nginx # 查看Nginx状态 sudo journalctl -u nginx -f # 实时查看Nginx日志
-
常见问题排查
- 端口占用:
sudo lsof -i :80 - 配置错误:
sudo nginx -t或sudo apache2 configtest - 权限问题:
sudo tail -f /var/log/nginx/error.log
- 端口占用:
相关问答FAQs
Q1: 部署后出现403 Forbidden错误,如何解决?
A: 403错误通常由权限问题导致,需检查Web根目录所有者是否为www-data(Nginx/Apache用户),并确保目录权限为755、文件权限为644,执行以下命令修复:
sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html
Q2: 如何通过HTTPS部署项目?
A: 需申请SSL证书并配置Web服务器,以Nginx为例,使用Let's Encrypt免费证书:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain.com # 自动配置HTTPS
配置完成后,Nginx会自动监听443端口并启用SSL,若为Apache,则使用sudo certbot --apache命令。
