[django]Django部署在apache上

本文详细介绍了如何将Django项目部署到Apache服务器的过程,包括安装Apache、mod_python及Django,配置Apache使其能够运行Django应用等内容。

1、安装apache 2.0.59
http://mirror.vmmatrix.net/apache/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi
2、安装mod_python-3.2.10.win32-py2.4-apache2.2.exe
http://www.apache.org/dist/httpd/modpython/win/3.2.10/mod_python-3.2.10.win32-py2.4-apache2.0.exe
这一步安装完后,提示你选择apache2.0的安装目录,以安装mod_python.so文件到apache的Modules目录下去
3、通过svn下载安装django
svn co http://code.djangoproject.com/svn/django/trunk/
4、创建一个django的项目
如:我们在e:/django目录下创建newtest的django项目,在cmd下输入:
>django-admin.py startproject newtest
(注意将C:\Python24\Scripts设置到系统的path中)
5、使用django自带的webserver,测试一下这个项目
在e:/django/newstest目录下:
>manage.py runserver
在地址栏中输入:http://127.0.0.1:8000
看到:
It worked!
Congratulations on your first Django-powered page.

则表示django的网站是成功的。
下面我们看怎么部署到apache中去。

6、修改httpd.conf
增加
LoadModule python_module modules/mod_python.so
增加
<Location "/newtest/">
    SetHandler python-program
    PythonPath "['E:/django'] + sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE newtest.settings
    PythonDebug On
</Location>

<Location "/media/">
    SetHandler None
</Location>

<LocationMatch "\.(jpg|gif|png)$">
    SetHandler None
</LocationMatch>
7.重启apache,查看http://127.0.0.1:8080/newtest
就能看到django的自带webserver同样的效果了。



### 准备环境 在Ubuntu上部署Django 5应用程序使用Apache服务器,首先需要确保系统中已安装必要的软件包。可以使用以下命令安装Apache、mod_wsgi模块以及Python相关依赖: ```bash sudo apt update sudo apt install apache2 libapache2-mod-wsgi-py3 python3-pip ``` 其中,`libapache2-mod-wsgi-py3` 是用于连接ApachePython应用程序的关键模块[^1]。 ### 创建Django项目 如果尚未创建Django项目,可以通过以下命令安装Django并创建一个新的项目: ```bash pip3 install django django-admin startproject myproject ``` 进入项目目录并进行必要的配置,例如修改`myproject/settings.py`文件中的`ALLOWED_HOSTS`以允许外部访问: ```python ALLOWED_HOSTS = ['your_domain_or_ip'] ``` 此外,确保在`settings.py`中配置静态文件路径,以便Apache能够正确处理静态资源: ```python STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') ``` 运行以下命令收集静态文件: ```bash python3 manage.py collectstatic ``` ### 配置Apache 接下来需要配置Apache以托管Django应用程序。首先,创建一个新的Apache配置文件: ```bash sudo nano /etc/apache2/sites-available/myproject.conf ``` 在该文件中添加以下内容,替换`your_domain_or_ip`为实际的域名或IP地址: ```apache <VirtualHost *:80> ServerAdmin admin@your_domain_or_ip ServerName your_domain_or_ip DocumentRoot /var/www/html Alias /static/ /path/to/your/project/static/ <Directory /path/to/your/project/static> Require all granted </Directory> <Directory /path/to/your/project/myproject> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess myproject python-path=/path/to/your/project python-home=/path/to/your/virtualenv WSGIProcessGroup myproject WSGIScriptAlias / /path/to/your/project/myproject/wsgi.py </VirtualHost> ``` 其中,`python-path`应指向Django项目的根目录,`python-home`应指向虚拟环境的路径(如果有使用虚拟环境)。如果未使用虚拟环境,可以省略`python-home`参数。 保存文件后,启用该站点并禁用默认站点: ```bash sudo a2ensite myproject sudo a2dissite 000-default ``` 同时,确保启用`mod_wsgi`模块: ```bash sudo a2enmod wsgi ``` ### 重启Apache服务 完成所有配置后,重启Apache服务以应用更改: ```bash sudo systemctl restart apache2 ``` 此时,可以通过浏览器访问`http://your_domain_or_ip`来查看部署Django应用程序。 ### 调试与常见问题 如果遇到问题,可以检查Apache的错误日志以获取更多信息: ```bash sudo tail -f /var/log/apache2/error.log ``` 常见的问题包括权限问题、路径错误以及WSGI配置不正确。确保Django项目的`wsgi.py`文件存在且内容正确,通常它应该包含以下内容: ```python import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') application = get_wsgi_application() ``` 通过以上步骤,Django 5应用程序应该能够在Ubuntu上的Apache服务器上成功部署并运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值