下面是 Apache 如何部署 Django 项目的完整攻略:
一、在 Apache 中配置 mod_wsgi 模块
Apache 是一款广泛使用的 Web 服务器,而 mod_wsgi 是一款可以在 Apache 上运行 Python 代码的模块。因此,为了部署 Django 项目,我们首先需要在 Apache 中配置 mod_wsgi 模块。
- 安装 mod_wsgi 模块,在 Linux 上可以通过以下命令安装:
$ sudo apt-get install libapache2-mod-wsgi-py3
在 Windows 上则需要从 mod_wsgi 官网 下载模块并手动安装。
- 配置 mod_wsgi 模块,可以在 Apache 的配置文件中加入以下内容:
LoadModule wsgi_module modules/mod_wsgi.so
或者在 Ubuntu 上执行以下命令启用该模块:
$ sudo a2enmod wsgi
- 确认模块成功安装并启用,可以执行以下命令:
$ apache2ctl -t -D DUMP_MODULES | grep wsgi
如果输出中包含 wsgi_module
则说明 mod_wsgi 模块已经成功安装并启用。
二、创建 Django 项目并配置 Apache
在 Apache 中配置好 mod_wsgi 模块后,我们就可以开始创建 Django 项目并配置 Apache 了。
- 创建一个 Django 项目:
$ django-admin startproject myproject
- 在 Django 项目中创建一个 WSGI 文件,该文件是启动 Django 项目的一个入口文件。可以在 Django 项目的目录中创建一个名为
myproject.wsgi
的文件,并在其中加入以下内容:
```python
import os
import sys
# 将项目路径加入 sys.path
project_path = os.path.dirname(os.path.abspath(file))
sys.path.append(project_path)
sys.path.append(os.path.join(project_path, 'myproject'))
# 设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
# 加载 wsgi 文件
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
```
注意,这里需要把 myproject
改成你实际创建的 Django 项目的名称。
- 编辑 Apache 的配置文件,添加以下内容:
```
# 设置项目的根目录
Options +ExecCGI
Require all granted
# 设置 URL 和 WSGI 入口
WSGIScriptAlias / /path/to/myproject/myproject.wsgi
```
其中 /path/to/myproject/
要替换为实际的 Django 项目的根目录。
- 重启 Apache 服务器:
$ sudo service apache2 restart
或者
$ sudo /etc/init.d/httpd restart
至此,Django 项目就已经可以通过 Apache 服务器访问了。可以在浏览器中输入服务器的 IP 地址或域名,检查 Django 项目能否正常运行。
三、示例说明
以下是两个示例,分别演示如何在 Apache 中部署两个不同的 Django 项目。
示例一:部署一个名为 myproject1
的 Django 项目
- 首先创建一个名为
myproject1
的 Django 项目:
$ django-admin startproject myproject1
- 在
myproject1
的项目目录下创建一个名为myproject1.wsgi
的 WSGI 文件,并在其中加入以下内容:
```python
import os
import sys
# 将项目路径加入 sys.path
project_path = os.path.dirname(os.path.abspath(file))
sys.path.append(project_path)
sys.path.append(os.path.join(project_path, 'myproject1'))
# 设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject1.settings')
# 加载 wsgi 文件
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
```
- 在 Apache 的配置文件中加入以下内容:
```
# 设置 myproject1 的根目录
Options +ExecCGI
Require all granted
# 设置 URL 和 WSGI 入口
WSGIScriptAlias /myproject1/ /path/to/myproject1/myproject1.wsgi
```
其中 /path/to/myproject1/
要替换为实际的 myproject1
项目的根目录。
- 重启 Apache 服务器:
$ sudo service apache2 restart
- 在浏览器中输入服务器的 IP 地址或域名,可以通过
http://IP地址/myproject1/
访问myproject1
项目。
示例二:部署一个名为 myproject2
的 Django 项目
- 首先创建一个名为
myproject2
的 Django 项目:
$ django-admin startproject myproject2
- 在
myproject2
的项目目录下创建一个名为myproject2.wsgi
的 WSGI 文件,并在其中加入以下内容:
```python
import os
import sys
# 将项目路径加入 sys.path
project_path = os.path.dirname(os.path.abspath(file))
sys.path.append(project_path)
sys.path.append(os.path.join(project_path, 'myproject2'))
# 设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject2.settings')
# 加载 wsgi 文件
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
```
- 在 Apache 的配置文件中加入以下内容:
```
# 设置 myproject2 的根目录
Options +ExecCGI
Require all granted
# 设置 URL 和 WSGI 入口
WSGIScriptAlias /myproject2/ /path/to/myproject2/myproject2.wsgi
```
其中 /path/to/myproject2/
要替换为实际的 myproject2
项目的根目录。
- 重启 Apache 服务器:
$ sudo service apache2 restart
- 在浏览器中输入服务器的 IP 地址或域名,可以通过
http://IP地址/myproject2/
访问myproject2
项目。
以上就是关于 Apache 如何部署 Django 项目的完整攻略,希望可以帮助你成功部署 Django 项目。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Apache如何部署django项目 - Python技术站