服务器是使用的阿里云的centos 7.6
项目使用的是 Python3.9.5 + Django 3.2.4
目标:将django项目部署到centos上,centos + Python + django + uwsgi + nginx
Python下载地址:https://www.python.org/ftp/python/3.9.5/ nginx下载地址:http://nginx.org/download/nginx-1.18.0.tar.gz
进入到centos后,里面是没有环境的,所以全部都需要安装,以下就是安装方法,当然安装的过程中,会遇到一点坑,不过我已经趟过了,也已经解决了,关于这些坑及解决方法,大家可以看我其他的文章。
一、更新系统包,安装软件管理包和可能使用的依赖
yum update -y yum -y groupinstall "Development tools" yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel
二、安装Python,项目使用的是Python3.9.5,所以我安装的也是 3.9.5 版本
# 1.下载 wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz # 2.解压 tar -zxvf Python-3.9.5.tgz # 3.进入到解压后的文件夹 cd Python-3.9.5 # 4.设置Python安装位置,我是在根目录创建一个文件,将Python安装在这个文件夹中 ./configure --prefix=/huyang/python395 # 5.编译与安装 make && make install # 6.创建Python及pip的软链接(python3, pip3) ln -s /huyang/python395/bin/python3.9 /usr/bin/python3 ln -s /huyang/python395/bin/pip3.9 /usr/bin/pip3
三、安装nginx
# 1.下载 wget http://nginx.org/download/nginx-1.18.0.tar.gz # 2.解压 tar -zxvf nginx-1.18.0.tar.gz # 3.进入nginx文件夹 cd nginx-1.18.0 # 4.编译与安装,因为是默认安装,所以没有设置安装位置 ./configure make && make install
四、上传项目,安装Python库
ftp上传就可以了,安装库:比如:pip3 install django 等,安装自己项目中用到的库就可以了。
例:项目结构,方便大家知道下面配置文件怎么写
project_name
app_name
views.py
models.py
admin.py
...
project_name
wsgi.py
settings.py
...
五、安装 uwsgi,写 uwsgi 配置文件
# 安装uwsgi
pip3 install uwsgi
项目 project_name 是放在 /huyang/ 下面,所以先进入项目文件夹
cd /huyang/project_name
新建一个 uwsgi.xml 配置文件
vi uwsgi.xml
给 uwsgi.xml 文件写配置
<uwsgi> <socket>127.0.0.1:8997</socket> <chdir>/huyang/project_name/</chdir> <module>project_name.wsgi</module> <processes>4</processes> <daemonize>uwsgi.log</daemonize> </uwsgi>
可以使用 " python3 manage.py runserver " 测试下项目是否可以跑起来,如果正常跑起来,那就可以启动 uwsgi 了
uwsgi -x uwsgi.xml
六、编写nginx配置文件,启动nginx
nginx是默认安装,所以位置是在:/usr/local/nginx
nginx默认配置文件是在:/usr/local/nginx/conf
为了避免出错,我们可以先将配置文件 nginx.con 拷贝一份出来
cp nginx.conf nginx.conf.bak
然后在编写配置文件 nginx.conf
vi nginx.conf
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name www.django.cn; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:88; uwsgi_param UWSGI_SCRIPT project_name.wsgi; uwsgi_param UWSGI_CHDIR /huyang/project_name; } location /static/ { # 静态文件我是收集在 /huyang/static/ 下 alias /huyang/static/; } } }
然后重启nginx
cd /usr/local/nginx/sbin ./nginx ./nginx -s reload
然后打开浏览器,访问我们配置的 server_name 就可以访问到我们的项目了,*:上面写的 www.django.cn 只是为了交大家怎么写,大家可以修改成自己的ip地址,或者真实的域名。