django專案部署到centos
伺服器是使用的阿里雲的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地址,或者真實的域名。