Ubuntu下Apache中部署Django

本文详细介绍如何在Ubuntu 12.04环境下使用Apache2和mod_wsgi部署Django 1.6应用,包括安装所需组件、配置httpd.conf及解决常见错误。

环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi

 1. 安装apache2:

sudo apt-get install apache2

2. 安装mod_wsgi.so:

2.x python:

sudo apt-get install libapache2-mod-wsgi

3. 安装Django1.6:

sudo pip install django

建立工程:

在/var/www下面建立工程(cd /var/www)

sudo django-admin.py startproject mysite
文件结构如下:
mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

4. 配置httpd.conf:

采用wsgi部署Django的详细过程可参考Django的官方网站(https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi/)

在httpd.conf里加入:

WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
WSGIPythonPath /var/www/mysite

<Directory /var/www/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

5. 重启apache2:

sudo /etc/init.d/apache2 restart

5. 错误403:

修改apache.conf中的<Directory>

deny 为Allow from all

<think>好的,用户想在Ubuntu虚拟机上部署Django项目,我需要根据他们提供的引用资料来整理步骤。首先,用户之前提到的引用中提到了安装Apache2、mod_wsgi,还有使用Nginx和uWSgi的情况。不过用户现在可能更关心基本的部署方法,可能不需要太复杂的配置。 首先,我需要确定用户是初次部署,所以应该从基础开始。根据引用[2],在Ubuntu20.04下部署Django,需要安装虚拟环境和Django。引用[3]提到了使用虚拟环境安装依赖,所以可能需要先创建虚拟环境,安装Django,然后配置服务器。 另外,用户提到的是虚拟机,可能需要处理网络问题,比如让宿主机访问虚拟机内的应用。引用[4]中提到了运行runserver时使用0.0.0.0:8000,这样外部才能访问。所以需要确保Django的开发服务器正确绑定地址。 不过用户可能更倾向于生产环境部署,所以可能需要配置Apache或者Nginx。引用[1]里用的是Apache2和mod_wsgi,而引用[3]用的是Nginx和uWSgi。需要比较这两种方式的步骤,然后给出两种方法供用户选择。 接下来,步骤应该包括安装Python和虚拟环境,安装Django,创建项目,安装服务器软件(Apache或Nginx),配置服务器,处理静态文件,处理权限,最后测试访问。 需要注意检查配置文件中的路径是否正确,比如项目路径、静态文件路径。还要提醒用户关于ALLOWED_HOSTS的设置,以及可能的防火墙问题,虽然引用[4]提到防火墙已关闭,但可能需要确认。 另外,用户可能遇到依赖问题,所以需要生成requirements.txt并安装依赖包,如引用[3]所述。 最后,生成相关的问题,帮助用户进一步优化或解决可能的问题,比如性能优化、HTTPS配置等。</think>### Ubuntu虚拟机部署Django应用分步指南 #### 一、基础环境配置 1. **更新系统** ```bash sudo apt update && sudo apt upgrade -y ``` 2. **安装Python与虚拟环境** ```bash sudo apt install python3 python3-pip python3-venv -y ``` 3. **创建项目目录** ```bash mkdir ~/django_project && cd ~/django_project ``` #### 二、Django项目部署(开发模式) 1. **创建虚拟环境** ```bash python3 -m venv venv source venv/bin/activate ``` 2. **安装Django** ```bash pip install django==4.2.11 # 版本号参考引用[2] ``` 3. **启动测试服务** ```bash python manage.py runserver 0.0.0.0:8000 # 关键参数见引用[4] ``` - 此时应通过`宿主机IP:8000`访问服务 #### 三、生产环境部署Apache2+mod_wsgi方案)[^1] 1. **安装依赖组件** ```bash sudo apt install apache2 libapache2-mod-wsgi-py3 ``` 2. **配置文件示例** ```apache # /etc/apache2/sites-available/django.conf <VirtualHost *:80> ServerName your_domain.com DocumentRoot /home/user/django_project Alias /static /home/user/django_project/static <Directory /home/user/django_project/static> Require all granted </Directory> WSGIDaemonProcess django_project python-path=/home/user/django_project python-home=/home/user/django_project/venv WSGIProcessGroup django_project WSGIScriptAlias / /home/user/django_project/project/wsgi.py <Directory /home/user/django_project/project> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost> ``` 3. **关键操作命令** ```bash sudo a2ensite django.conf sudo systemctl reload apache2 ``` #### 四、必要配置调整 1. **设置ALLOWED_HOSTS** ```python # settings.py ALLOWED_HOSTS = ['虚拟机IP', '域名', 'localhost'] ``` 2. **收集静态文件** ```bash python manage.py collectstatic ``` 3. **文件权限设置** ```bash sudo chown :www-data ~/django_project sudo chmod 775 ~/django_project ``` #### 五、验证部署 1. **检查Apache状态** ```bash systemctl status apache2 ``` 2. **查看错误日志** ```bash tail -f /var/log/apache2/error.log ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值