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"  # 修改安装路径

#
### 部署Django项目局域网服务器 #### Apache配置与mod_wsgi安装 为了使Django应用能够在局域网内通过Apache服务,需先确保已正确安装并配置了Apache以及`mod-wsgi`模块。这一步骤对于许多初次尝试部署的人来说可能会遇到困难[^1]。 ```bash sudo apt-get install apache2 libapache2-mod-wsgi-py3 python3-dev ``` #### 设置Python虚拟环境路径 当使用虚拟环境中运行的Python解释器时,应特别注意设置正确的Python路径。错误地指定此参数可能导致应用程序无法启动或其他未知行为。可以通过编辑Apache配置文件来指向正确的Python可执行文件位置。 #### 正确引用Django项目的WSGI入口点 另一个常见的问题是关于如何正确定位到Django项目的`wsgi.py`文件。该文件作为Web Server Gateway Interface (WSGI) 的接口,在连接前端HTTP请求处理程序(即Apache)和后端框架之间起着桥梁作用。因此,必须精确无误地提供其绝对路径给Apache配置文件中的`WSGIScriptAlias`指令。 #### 启动开发服务器供局域网访问 如果仅是为了测试目的或是小型内部网络分享,则可以直接利用内置的发展服务器让其他同处一个子网内的计算机能够浏览网站内容。此时只需获取当前机器所在的本地IP地址,并将其连同自定义端口一起传递给`runserver`命令即可实现这一点[^2]: ```python python manage.py runserver 192.168.100.100:8080 ``` #### 使用uWSGI进行生产级部署 然而,对于更正式或高负载的情况来说,推荐采用像uWSGI这样的专用WSGI容器配合Nginx/Apache等反向代理来进行部署。创建相应的`.ini`配置文件可以简化这一过程,其中包含了诸如监听地址、工作进程数等多项重要设定[^3]: ```ini [uwsgi] http = IP/域名:端口号 chdir = /path/to/project module = project_name.wsgi master = true processes = 4 chmod-socket = 664 vacuum = true ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值