Apache局域网部署Django项目

前言

记录Apache在局域网中部署Django的步骤,参考了一些文档,折腾了一天终于部署成功了。主要出问题的地方:1.mod-wsgi的安装;2.虚拟环境中的python路径,3.Django的wsgi.py路径问题。

一、Apache安装

  1. 下载网址:https://www.apachelounge.com/download/additional/ 。我的python版本是3.10.10,选择httpd 2.4.57 VS16 Last VS16。其它Python版本对应的Apache版本参考文档:https://www.cnblogs.com/GreatPlanHero/p/18108385

  2. 解压下载的Apache压缩包,到C:\Apache24目录,启动程序位于C:\Apache24\bin\httpd.exe,如果不是这个目录,需要先在Apache24\conf\con\httpd.conf中把Define SRVROOT "c:/Apache24"修改成你的Apache安装路径,否则安装mod-wsgi会出错。

二、mod-wsgi安装

  • 一些文档中说去网站http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi下载后安装,但这个网站已关停了。
  • 改为使用pip install mod-wsgi直接安装,需要注意的是,如果Django的运行环境是在虚拟环境中,例如使用virtualenv建立的env虚拟环境,则需要进入到这个虚拟环境env中并激活,再用pip安装,不能直接在全局环境中安装。并且需要检查httpd.conf中的路径Define SRVROOT “c:/Apache24”,是否与实际解压路径一致。
  • 打开命名行窗口,在虚拟环境env中激活后运行mod_wsgi-express module-config,如果原来的Django项目文件夹在D盘,然后连同文件夹里的env虚拟环境一起全部复制到C盘,那么运行上述mod_wsgi命名后,就会出现下图中路径依然指向D盘的情况,但这并不影响Apache的正常运行。显示的这些信息后面要复制到httpd.conf中。在这里插入图片描述

三、修改httpd.conf

  • 用记事本打开Apache24\conf\con\httpd.conf,修改前先备份,先在命令行cmd里使用ipconfig获取本机的ip地址,例如192.168.0.103,然后修改httpd.conf如下:
Define SRVROOT "c:/Apache24"  # 修改安装路径

#Listen 12.34.56.78:80
Listen 8001   #默认是80端口,修改为8001,或者使用Django的默认端口8000也可以

ServerName 192.168.0.103:8001 #修改ServerName,这里192.168.0.103是服务器在局域网中的ip地址

#在最后面新增下面这些内容
#这3行是运行mod_wsgi-express module-config后复制过来的
LoadFile "C:/Users/Administrator/AppData/Local/Programs/Python/Python310/python310.dll"
LoadModule wsgi_module "D:/Django_RunOk/Django-KGYunNan-HR/env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd"
WSGIPythonHome "D:/Django_RunOk/Django-KGYunNan-HR/env"

#设置Django项目中wsgi路径
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / C:/Django-KGYunNan-HR/HR/wsgi.py
WSGIPythonPath C:/Django-KGYunNan-HR/HR

<Directory C:/Django-KGYunNan-HR/HR>
<Files wsgi.py>
  Require all granted
</Files>
</Directory>

#设置Django项目中静态文件路径
Alias /static C:/Django-KGYunNan-HR/static
<Directory C:/Django-KGYunNan-HR/static> 
  AllowOverride None
  Options None
  Require all granted
</Directory>

四、修改Django项目中的wsgi.py

  • 如果直接运行Apache,然后在浏览器中输入相应网址会出现Error错误提示,错误提示在Apache24\logs\error.log中查看。主要是wsgi的错误。需要修改wsgi.py文件:
import os
import sys #添加导入sys

from django.core.wsgi import get_wsgi_application

#添加系统路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'HR.settings'

#修改原来的'XXX.settings'为你的Django项目名称
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'HR.settings')
application = get_wsgi_application()

五、修改Django项目中的settings.py

DEBUG = False #原来是DEBUG = True

STATIC_URL = '/static/'
if DEBUG == False:
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, '/static/'),
    )

六、运行

  • 运行C:\Apache24\bin\httpd.exe,直接点击exe或者在命令行中执行。
  • 在局域网中的另外一台计算机上,打开浏览器输入192.168.0.103:8001,就可以访问Django项目了。

参考文档

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值