Debian Apache系统和mod_wsgi模块部署Django项目记录
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,则命令 假设 Django 项目的文件 添加的这几行代码做了2件事:1.将Django项目路径添加到系统路径中,以便Apache服务器可以找到文件 请参阅 复制 整个配置文件包含方括号中的一些设置 复制 添加对端口号的控制新站点: 3 在 中启用调试模式,检查输出并进行适当的更改。./configure
更改为 ./ configure --with - python= /usr/bin/python3.4
。如果没有报错,说明mod_wsgi已经编译完成! 编译完成后,会在apache模块目录/usr/lib/apache2/modules/
下生成mod_wsgi.so文件。 ? 2 .conf 是主要配置文件,包括超时时间、日志级别和格式等系统设置。文件 ports.conf
配置监听端口号以及是否启用 SSL。 envvars
和 magic
包含一些与环境变量相关的内容,但我没见过太多。其余6个目录成对出现,文件夹availabel
包含所有配置,目录enabled
包含已启用的配置。可以使用命令 a2enconf
和分别为。 a2enmod
、a2ensite
启用。启用后,将在 enabled
目录中创建一个软链接,指向 available
目录中的同名文件。在文件apache2.conf
有一些语句IncludeOptional
,用于conf-enabled
、通过修改启用
设置 wsgi 文件路径、 、配置,sites-enabled
目录下的文件包含在主配置文件中。这样做的好处是每个配置文件配置的条目比较清晰,便于检查错误。 ? 6. Django 网站托管
wsgi.py
的路径 /home/yunfeng/dev/git/myte/myte/wsgi.py
,我们需要以下步骤来完成Django项目的Apache托管:1。修改 Django 项目中的文件
wsgi.py
和 settings.py
修改文件 wsgi.py
,按照说明添加行在代码中: 复制wsgi.py
; 2. 更改os.environ
的值,这样Apache同时托管多个Django项目时就不会出现串扰问题。然后修改文件settings.py
。主要有以下三个更改: DEBUG=True
更改为 DEBUG=False
TO ALLOWEND_HOSTS
,写入访问权限域名或服务器IP地址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
表示您需要项目正在侦听的端口号。 ErrorLog
和 CustomLog
设置错误日志和访问日志的路径和格式。 RWSGISCRIPTALIASAlias
语句管理站点Static
和 Media
目录。然后是标签,用于设置文件和目录的访问权限。 请注意,对于低于 2.4 的 Apache 版本,您需要更改 中的
标签中的
订单拒绝、允许
和 允许所有
要求所有已批准的。 更改后,执行以下命令即可启用该站点: sudo a2ensite mysite.conf
3. 修改/etc/apache2目录下的ports.conf文件
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。