菜鸟科技网

Linux部署Web项目,核心命令有哪些?

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

Linux部署Web项目,核心命令有哪些?-图1
(图片来源网络,侵删)

基础环境准备

  1. 更新系统软件包
    部署前需确保系统软件包为最新版本,避免依赖冲突:

    sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu系统
    sudo yum update -y                     # CentOS/RHEL系统
  2. 安装必要工具
    包括文件传输工具(如lrzsz)、编辑器(如vim)及编译工具:

    sudo apt install lrzsz vim gcc -y      # Debian/Ubuntu
    sudo yum install lrzsz vim gcc -y      # CentOS/RHEL
  3. 安装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           # 设置开机自启

项目文件上传与解压

  1. 上传项目文件

    Linux部署Web项目,核心命令有哪些?-图2
    (图片来源网络,侵删)
    • 使用rz命令上传本地文件(需提前安装lrzsz):
      rz -be                              # 上传并覆盖同名文件
    • 或通过scp从远程服务器传输:
      scp -r /local/project user@remote:/opt/webapp  # 本地到远程
  2. 解压与移动文件

    tar -zxvf project.tar.gz              # 解压.tar.gz文件
    unzip project.zip                     # 解压.zip文件
    sudo mv project/* /var/www/html/       # 移动至Web根目录(Nginx/Apache默认)

配置Web服务器

  1. 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          # 重载配置
  2. Apache配置
    编辑/etc/apache2/sites-available/000-default.conf

    Linux部署Web项目,核心命令有哪些?-图3
    (图片来源网络,侵删)
    <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        # 重启服务

部署应用服务器

  1. 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
  2. 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              # 设置开机自启

权限与安全配置

  1. 设置目录权限

    sudo chown -R www-data:www-data /var/www/html  # Nginx/Apache用户
    sudo chmod -R 755 /var/www/html               # 目录755,文件644
  2. 防火墙与端口开放

    sudo ufw allow 80/tcp                    # 允许HTTP端口
    sudo ufw allow 443/tcp                   # 允许HTTPS端口
    sudo ufw enable                          # 启用防火墙

服务监控与日志排查

  1. 查看服务状态

    sudo systemctl status nginx             # 查看Nginx状态
    sudo journalctl -u nginx -f             # 实时查看Nginx日志
  2. 常见问题排查

    • 端口占用sudo lsof -i :80
    • 配置错误sudo nginx -tsudo 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命令。

分享:
扫描分享到社交APP
上一篇
下一篇