Windows Server EC2实例部署Django应用遇端口权限及域名跳转问题
问题解决步骤
1. 修复端口80权限报错(WinError 10013)
Windows系统中,非管理员账号无法直接使用1024以下的端口,直接运行python manage.py runserver 0.0.0.0:80会触发权限错误,可通过两种方式解决:
- 以管理员身份执行命令:右键点击命令提示符/PowerShell,选择「以管理员身份运行」,再执行
python manage.py runserver 0.0.0.0:80。 - 改用高位端口:换成8000这类1024以上的端口,命令为
python manage.py runserver 0.0.0.0:8000,后续通过Apache反向代理转发请求到该端口。
2. 停止域名自动跳转到XAMPP Dashboard
XAMPP的Apache默认配置会将根路径请求导向dashboard,需修改配置取消跳转:
- 打开XAMPP安装目录下的
apache\conf\httpd.conf,找到<Directory "xampp安装路径/htdocs">段落,检查DirectoryIndex配置,删除或注释掉指向dashboard的规则,确保默认首页设置为正常的索引文件。 - 同时检查
apache\conf\extra\httpd-vhosts.conf,确认自定义域名的虚拟主机配置中没有强制跳转dashboard的规则。
3. 配置Apache反向代理,让自定义域名指向Django应用
通过Apache做反向代理,实现域名访问Django,同时保留XAMPP的MySQL服务:
- 启用代理模块:打开
httpd.conf,取消注释以下两行(删掉行首的#):LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so - 配置虚拟主机:打开
httpd-vhosts.conf,添加自定义域名的配置:<VirtualHost *:80> ServerName yourdomain.com # 替换为你的自定义域名 ProxyPreserveHost On ProxyPass / http://127.0.0.1:8000/ # 端口需与Django runserver的端口一致 ProxyPassReverse / http://127.0.0.1:8000/ </VirtualHost> - 重启Apache服务,启动Django服务:
python manage.py runserver 127.0.0.1:8000,此时访问自定义域名即可直接进入Django应用。
4. 配置Django连接XAMPP的MySQL
修改Django项目settings.py中的数据库配置,连接XAMPP的MySQL服务:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_db_name', # 替换为你在XAMPP MySQL中创建的数据库名 'USER': 'root', # XAMPP MySQL默认用户为root 'PASSWORD': '', # 若设置过MySQL密码则填入 'HOST': '127.0.0.1', 'PORT': '3306', # XAMPP MySQL默认端口 } }
安装MySQL Python驱动:pip install mysqlclient,再执行python manage.py migrate完成数据库迁移。
内容的提问来源于stack exchange,提问作者Muhammad Zarak Aamer
相关产品推荐
相关产品推荐

