温馨提示×

ubuntu apache2怎么部署项目

小樊
49
2026-08-16 20:07:31
栏目: 智能运维

下面按最常见场景给你一个完整、实用的 Ubuntu + Apache2 部署项目教程。
我会从 环境准备 → 部署静态 / 动态项目 → 常见坑 一步步讲。


一、基础环境准备

1️⃣ 更新系统

sudo apt update
sudo apt upgrade -y

2️⃣ 安装 Apache2

sudo apt install apache2 -y

3️⃣ 启动并设置开机自启

sudo systemctl start apache2
sudo systemctl enable apache2

4️⃣ 验证是否成功

浏览器访问:

http://服务器IP

看到 Apache2 Ubuntu Default Page 即成功 ✅


二、防火墙放行(非常重要)

UFW 防火墙

sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload

查看状态:

sudo ufw status

三、部署静态项目(HTML / CSS / JS / Vue / React)

1️⃣ 项目目录

Apache 默认站点目录:

/var/www/html

2️⃣ 上传项目

cd /var/www/html
sudo rm index.html
sudo git clone 你的项目.git
# 或
sudo scp 本地文件 root@ip:/var/www/html

3️⃣ 设置权限

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

✅ 静态项目到这里就完成了


四、部署动态项目(PHP / Python / Java)


✅ 场景一:PHP 项目(Laravel / ThinkPHP)

1️⃣ 安装 PHP

sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-curl -y

2️⃣ 修改虚拟主机

sudo nano /etc/apache2/sites-available/000-default.conf

示例:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

3️⃣ 启用重写模块

sudo a2enmod rewrite
sudo systemctl restart apache2

✅ PHP 项目完成


✅ 场景二:Python 项目(Flask / Django)

方式:Apache + mod_wsgi

1️⃣ 安装依赖

sudo apt install python3 python3-pip apache2-dev -y
sudo pip3 install mod_wsgi

2️⃣ 配置 WSGI

sudo nano /etc/apache2/sites-available/flask.conf

示例(Flask):

<VirtualHost *:80>
    ServerName example.com

    WSGIDaemonProcess flaskapp python-home=/var/www/flask/venv python-path=/var/www/flask
    WSGIScriptAlias / /var/www/flask/app.wsgi

    <Directory /var/www/flask>
        Require all granted
    </Directory>
</VirtualHost>

3️⃣ 启用站点

sudo a2ensite flask.conf
sudo systemctl restart apache2

✅ 场景三:Java 项目(Spring Boot)

Apache 通常 反向代理 到 Spring Boot

1️⃣ 启动 Spring Boot

java -jar app.jar --server.port=8080

2️⃣ Apache 反向代理

sudo a2enmod proxy proxy_http

配置:

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

五、配置域名(可选)

1️⃣ DNS 解析

域名 A 记录指向服务器 IP

2️⃣ Apache 配置

ServerName www.example.com
ServerAlias example.com

六、HTTPS(强烈推荐)

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache

自动续签:

sudo certbot renew --dry-run

七、常见问题排查

❌ 403 Forbidden

sudo chown -R www-data:www-data 项目目录

❌ 500 Internal Error

sudo tail -n 50 /var/log/apache2/error.log

❌ 页面没变化

sudo systemctl restart apache2

八、总结一句话

Ubuntu + Apache2 部署项目 = 安装 Apache → 放代码 → 配置站点 → 权限 + 防火墙


如果你愿意,可以告诉我:

  • ✅ 项目语言(PHP / Java / Python / 前端)
  • ✅ 是否用域名
  • ✅ 是否 HTTPS
  • ✅ Ubuntu 版本

我可以直接给你 一份完全可用的配置文件

0