本文档详细介绍了如何将一个Django项目部署到CentOS服务器上,主要涉及以下几个关键步骤:
1. **项目上传至服务器**:
首先,你需要使用SCP(Secure Copy)命令将本地项目文件夹`fresh`从Windows的`C:\Users\Administrator\Desktop`目录上传到CentOS服务器,路径是`/home/fresh/`。这一步确保了项目的源代码在服务器上可用。
2. **设置虚拟环境和uwsgi安装**:
在服务器的虚拟环境中,安装uwsgi这个Web服务器 Gateway Interface(WSGI)应用服务器,它可以帮助Django项目处理HTTP请求。使用`pip install uwsgi`命令完成此操作。安装后,通过在浏览器访问服务器IP地址加上端口(例如:`http://<ip>:9000`)来验证uwsgi是否成功安装并配置。
3. **修改Django设置**:
在项目的`settings.py`文件中,将`ALLOWED_HOSTS`设置为服务器的本机地址,以便正确处理跨域请求。此外,执行`python manage.py collectstatic`命令来收集admin模板静态文件,使网站能够正确显示。
4. **创建uwsgi配置文件**:
创建名为`django_uwsgi.ini`的配置文件,配置uwsgi以监听指定端口(9000),设置工作目录、模块路径、主进程模式、进程数量和自动清理环境等。通过`uwsgi --ini django_uwsgi.ini`命令启动服务。
5. **配置Nginx**:
Nginx是一个高性能的HTTP服务器和反向代理,用于负载均衡和缓存。在Nginx配置文件中,添加一个新的server块来代理uwsgi的请求,指定监听端口(8008),并将静态文件路径指向Django项目文件夹。然后,重启Nginx以应用新的配置。
6. **解决权限和样式问题**:
如果在浏览器中打开网页无样式,可能是因为SELinux安全策略阻止了某些操作。使用`getenforce`检查当前SELinux状态,如果是enforcing,执行`setenforce 0`将其禁用,以便临时测试。之后刷新页面,如果样式恢复正常,可以考虑永久性地调整SELinux规则。
7. **检查端口占用**:
如果在启动uwsgi或Nginx时遇到端口被占用的问题,可以使用`lsof -i:9000`命令查看哪些进程正在占用该端口,以便进行相应调整。
通过以上步骤,你就能将Django项目部署到CentOS服务器并确保其正常运行。需要注意的是,这只是一个基本的部署流程,实际部署可能需要根据项目特性和服务器的具体情况进行调整。