You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需使用Setup Python App,如何在cPanel中部署Django项目?求分步教程

不依赖cPanel Setup Python App的Django项目部署完整步骤

一、本地项目预处理

  • 生成依赖清单:在本地项目根目录执行 pip freeze > requirements.txt,确保所有依赖(含Django、uWSGI等)都被记录
  • 修改settings.py关键配置:
    • 设置DEBUG = False
    • 在ALLOWED_HOSTS中添加你的域名,示例:ALLOWED_HOSTS = ["yourdomain.com", "www.yourdomain.com"]
    • 配置静态文件:
      STATIC_URL = '/static/'
      STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
      STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
      
    • 配置媒体文件(按需添加):
      MEDIA_URL = '/media/'
      MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
      
  • 收集静态文件:执行 python manage.py collectstatic,将所有静态文件统一打包到staticfiles目录

二、cPanel基础配置

  • 登录cPanel,完成域名/子域名的创建(若尚未配置)
  • 进入File Manager,在public_html目录外创建独立的项目存储目录(如django_projects),避免项目文件直接暴露在web根目录
  • 上传本地项目文件:将本地项目打包为ZIP,通过File Manager上传到django_projects目录后解压;或用FTP工具直接上传整个项目文件夹

三、手动创建Python虚拟环境

  • 打开cPanel的Terminal工具,导航到项目根目录:
    cd /home/your_cpanel_username/django_projects/your_django_project
    
  • 创建虚拟环境:
    python3 -m venv venv
    
  • 激活虚拟环境:
    source venv/bin/activate
    
  • 安装项目依赖:
    pip install --upgrade pip
    pip install -r requirements.txt
    
  • 安装uWSGI(作为应用服务器):
    pip install uwsgi
    

四、配置uWSGI

  • 在项目根目录创建uwsgi.ini文件,写入以下配置(根据实际路径修改):
    [uwsgi]
    # 项目根目录绝对路径
    chdir = /home/your_cpanel_username/django_projects/your_django_project
    # WSGI模块路径(格式:项目名/wsgi.py)
    module = your_project_name.wsgi:application
    # 虚拟环境路径
    home = /home/your_cpanel_username/django_projects/your_django_project/venv
    # 本地socket文件,用于与Apache通信
    socket = /home/your_cpanel_username/django_projects/your_django_project/your_project.sock
    # 设置socket权限,避免Apache无法访问
    chmod-socket = 666
    # 进程数
    processes = 4
    # 线程数
    threads = 2
    # 后台运行并记录日志
    daemonize = /home/your_cpanel_username/django_projects/your_django_project/uwsgi.log
    # 主进程PID文件
    pidfile = /home/your_cpanel_username/django_projects/your_django_project/uwsgi.pid
    
  • 测试uWSGI启动:
    uwsgi --ini uwsgi.ini
    
    查看uwsgi.log确认无报错即为正常

五、配置Apache反向代理(.htaccess)

  • 进入域名对应的web根目录(主域名对应public_html,子域名对应public_html/subdomain)
  • 创建或修改.htaccess文件,添加以下规则:
    RewriteEngine On
    # 转发所有非静态/媒体文件请求到uWSGI socket
    RewriteCond %{REQUEST_URI} !^/static/
    RewriteCond %{REQUEST_URI} !^/media/
    RewriteRule ^(.*)$ unix:/home/your_cpanel_username/django_projects/your_django_project/your_project.sock|uwsgi://localhost/$1 [P,L]
    
    # 静态文件直接访问
    Alias /static/ /home/your_cpanel_username/django_projects/your_django_project/staticfiles/
    <Directory /home/your_cpanel_username/django_projects/your_django_project/staticfiles/>
        Require all granted
    </Directory>
    
    # 媒体文件直接访问(按需添加)
    Alias /media/ /home/your_cpanel_username/django_projects/your_django_project/media/
    <Directory /home/your_cpanel_username/django_projects/your_django_project/media/>
        Require all granted
    </Directory>
    

六、数据库配置(以MySQL为例)

  • 在cPanel的MySQL Databases中:
    • 创建新数据库(如your_db_name)
    • 创建数据库用户(如your_db_user)并设置密码
    • 将用户授权给数据库,赋予全部权限
  • 修改项目settings.py中的DATABASES配置:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'your_db_name',
            'USER': 'your_db_user',
            'PASSWORD': 'your_db_password',
            'HOST': 'localhost',
            'PORT': '3306',
        }
    }
    
  • 回到cPanel Terminal(确保虚拟环境已激活),执行数据库迁移:
    python manage.py migrate
    
  • 如需后台管理,创建超级用户:
    python manage.py createsuperuser
    

七、保持uWSGI后台运行

  • 若之前测试启动的uWSGI已停止,重新启动并后台运行:
    nohup uwsgi --ini uwsgi.ini &
    
  • 查看运行状态:
    ps aux | grep uwsgi
    
  • 停止uWSGI(如需重启或更新):
    uwsgi --stop uwsgi.pid
    

八、验证部署

  • 打开浏览器访问你的域名,检查页面是否正常加载
  • 测试静态文件(如CSS、JS)是否显示正常
  • 测试网站核心功能(如表单提交、数据库操作)是否正常
  • 若出现500错误,查看uWSGI日志和Apache错误日志(通过cPanel的Error Logs工具定位问题)

内容的提问来源于stack exchange,提问作者Shruthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:22:56