在CentOS系统上部署Django 1.4项目需要遵循一系列规范步骤,确保环境配置正确、依赖安装完整且服务运行稳定,以下从环境准备、依赖安装、项目配置到服务部署的完整流程,帮助开发者顺利完成搭建。

环境准备与基础配置
首先需要确保CentOS系统已更新至最新状态,并安装必要的开发工具,通过执行以下命令更新系统并安装编译工具:
sudo yum update -y sudo yum groupinstall "Development Tools" -y
接着安装Python及其开发包,Django 1.4基于Python 2.7开发,需确保版本兼容:
sudo yum install python27 python27-devel -y
为避免系统Python版本冲突,建议通过virtualenv创建独立虚拟环境,安装virtualenv后,创建项目目录并激活虚拟环境:
sudo yum install python-virtualenv -y mkdir django_project && cd django_project virtualenv --python=/usr/bin/python2.7 venv source venv/bin/activate
Django 1.4安装与项目初始化
在虚拟环境中使用pip安装Django 1.4及其依赖:
pip install Django==1.4
验证安装是否成功:
python -c "import django; print(django.get_version())"
创建Django项目与应用:
django-admin.py startproject myproject cd myproject python manage.py startapp myapp
项目结构如下表所示:

| 目录/文件 | 功能描述 |
|---|---|
| myproject/ | 项目配置目录 |
| ├── manage.py | 项目管理脚本 |
| ├── settings.py | 项目设置文件 |
| ├── urls.py | URL路由配置 |
| └── wsgi.py | WSGI应用入口 |
| myapp/ | 应用目录 |
| ├── models.py | 数据模型定义 |
| ├── views.py | 视图函数处理 |
| └── templates/ | 模板文件目录 |
数据库配置与模型迁移
Django 1.4支持SQLite、MySQL等多种数据库,以MySQL为例,首先安装MySQL开发库:
sudo yum install mysql-devel -y pip install MySQL-python
修改settings.py中的数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}
创建数据库并执行迁移:
mysql -u root -p -e "CREATE DATABASE mydatabase CHARACTER SET utf8;" python manage.py syncdb
开发服务器测试与静态文件配置
启动开发服务器验证项目运行:
python manage.py runserver 0.0.0.0:8000
访问http://服务器IP:8000确认页面正常显示,配置静态文件路径,在settings.py中添加:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
创建static目录并放置测试文件:
mkdir static && echo "test" > static/test.txt
生产环境部署(Nginx + uWSGI)
生产环境推荐使用Nginx作为反向代理,uWSGI作为应用服务器,首先安装必要依赖:

sudo yum install nginx python-devel -y pip install uwsgi
创建uWSGI配置文件uwsgi.ini:
[uwsgi] chdir = /path/to/django_project module = myproject.wsgi:application master = true processes = 4 socket = /tmp/uwsgi.sock chmod-socket = 666 vacuum = true die-on-term = true
配置Nginx代理,修改/etc/nginx/conf.d/django.conf:
server {
listen 80;
server_name your_domain.com;
location / {
uwsgi_pass unix:///tmp/uwsgi.sock;
include uwsgi_params;
}
location /static/ {
alias /path/to/django_project/static/;
}
}
启动服务并设置开机自启:
uwsgi --ini uwsgi.ini & sudo systemctl start nginx && sudo systemctl enable nginx
安全性优化建议
- 防火墙配置:仅开放必要端口(如80、443)
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
- 文件权限:确保静态文件目录权限正确
sudo chown -R nginx:nginx /path/to/django_project/static
- HTTPS配置:通过Let's Encrypt免费证书启用HTTPS
FAQs
Q1: Django 1.4是否支持Python 3?
A1: 不支持,Django 1.4仅兼容Python 2.7,如需使用Python 3,需升级至Django 1.8及以上版本。
Q2: 部署时出现"Permission denied"错误如何解决?
A2: 检查uWSGI socket文件权限,确保Nginx用户有读写权限,可通过chmod-socket = 666或调整用户组解决。