Code前端首页关于Code前端联系我们

Debian Apache系统和mod_wsgi模块部署Django项目记录

terry 2年前 (2023-09-24) 阅读数 63 #后端开发

0。概述

Django 是一个基于Python 的Web 开发框架。部署在实际生产环境中时,也必须与Apache容器一起部署。这是一篇关于使用 Apache 和 mod_wsgi 模块将 Django 项目部署到 Debian 系统的文章。 ?变化。

2。安装 Django 和 Apache

可以使用以下命令安装 Django:

sudo pip install Django==1.9.0 #设置版本号为1.9.0

复制

Apache 使用各个发行版的包管理命令安装。在 debian 下是:

sudo apt-get install apache2

Copy

3。安装 mod_wsgi 模块

mod_wsgi 可以通过水龙头安装,但需要事先在系统中安装apache-dev 软件包,但在 Debian 发行版中此软件包称为 apache2 -prefork- dev,请参阅此处了解详细信息。使用以下命令安装

sudo apt-get install apache2-prefork-dev

Copy

。此外,您还必须安装软件包python-dev。要使用python3,您需要安装包python3-dev

sudo apt-get install python-dev
# 如果要使用python3,则安装如下包
#sudo apt-get install python3-dev

复制

然后使用pip安装mod_wsgi:

sudo pip install mod_wsgi

复制

此外,您可以自己构建mod_wsgi:首先从这里下载包文件,然后解压并编译。假设版本 4.5.3,所有命令如下:

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.3.tar.gz  
tar -xvf 4.5.3.tar.gz  
cd mod_wsgi-4.5.3  
./configure  
make  
sudo make install

Copy

如果要使用 python3,则命令 ./configure 更改为 ./ configure --with - python= /usr/bin/python3.4。如果没有报错,说明mod_wsgi已经编译完成! 编译完成后,会在apache模块目录/usr/lib/apache2/modules/下生成mod_wsgi.so文件。 ? 2 .conf 是主要配置文件,包括超时时间、日志级别和格式等系统设置。文件 ports.conf 配置监听端口号以及是否启用 SSL。 envvarsmagic 包含一些与环境变量相关的内容,但我没见过太多。其余6个目录成对出现,文件夹availabel包含所有配置,目录enabled包含已启用的配置。可以使用命令 a2enconf 和分别为。 a2enmoda2ensite启用。启用后,将在 enabled 目录中创建一个软链接,指向 available 目录中的同名文件。在文件apache2.conf有一些语句IncludeOptional,用于conf-enabled通过修改启用 、配置,sites-enabled目录下的文件包含在主配置文件中。这样做的好处是每个配置文件配置的条目比较清晰,便于检查错误。 ?

6. Django 网站托管

假设 Django 项目的文件 wsgi.py 的路径 /home/yunfeng/dev/git/myte/myte/wsgi.py,我们需要以下步骤来完成Django项目的Apache托管:

1。修改 Django 项目中的文件 wsgi.pysettings.py 修改文件 wsgi.py ,按照说明添加行在代码中: 复制

添加的这几行代码做了2件事:1.将Django项目路径添加到系统路径中,以便Apache服务器可以找到文件wsgi.py; 2. 更改os.environ的值,这样Apache同时托管多个Django项目时就不会出现串扰问题。然后修改文件settings.py。主要有以下三个更改:

  1. DEBUG=True 更改为 DEBUG=False
  2. 更改 TO ALLOWEND_HOSTS,写入访问权限域名或服务器IP地址
  3. DIRS 复制到 TEMPALTES 到指向模板目录的绝对路径。这是Django 2项目文件中需要更改的内容,以下所有内容都在/etc/apache2目录中管理。

2。将站点配置文件添加到 /etc/apache2/sites-available 目录

请参阅 000-default.conf 以及此目录中的 Django 教程来编写 mysite 配置文件。 .conf如下:

  <VirtualHost *:8000>                                                                                                                                         
    ErrorLog ${APACHE_LOG_DIR}/error.log                                                                                                                      
    CustomLog ${APACHE_LOG_DIR}/access.log combined                                                                                                           
                                                                                                                                                              
    WSGIScriptAlias / /home/yunfeng/Dev/git/mysite/mysite/wsgi.py                                                                               

    Alias /static/ /home/yunfeng/Dev/git/mysite/mysite/static/                                                                                  
    Alias /media/ /home/yunfeng/Dev/git/mysite/mysite/media/                                                                                  

    <Directory /home/yunfeng/Dev/git/mysite/mysite>                                                                                             
        <Files wsgi.py>                                                                                                                                       
    		Order deny,allow  
    		Allow from all  
        </Files>                                                                                                                                              
    </Directory>                                                                                                                                              

    <Directory /home/yunfeng/Dev/git/mysite/mysite/static/>                                                                                     
    	Order deny,allow  
    	Allow from all  
    </Directory>                                                                                                                                              
	
    <Directory /home/yunfeng/Dev/git/mysite/mysite/static/>                                                                                     
    	Order deny,allow  
    	Allow from all  
    </Directory>                                                                                                                                              
</VirtualHost>

复制

整个配置文件包含方括号中的一些设置VirtualHost。方括号的开头 *:8000 表示您需要项目正在侦听的端口号。 ErrorLogCustomLog 设置错误日志和访问日志的路径和格式。 RWSGISCRIPTALIAS

设置 wsgi 文件路径、Alias 语句管理站点StaticMedia 目录。然后是标签,用于设置文件和目录的访问权限。 请注意,对于低于 2.4 的 Apache 版本,您需要更改 中的 标签中的 订单拒绝、允许允许所有 要求所有已批准的 更改后,执行以下命令即可启用该站点:
sudo a2ensite mysite.conf

复制

3. 修改/etc/apache2目录下的ports.conf文件

添加对端口号的控制新站点: 3 在 中启用调试模式,检查输出并进行适当的更改。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门