1. 程式人生 > 其它 >django專案部署到centos

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地址,或者真實的域名。