將Django項(xiàng)目遷移到Linux系統(tǒng),并上線發(fā)布

一,安裝軟件管理包和可能使用的依賴

yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

二,下載和配置Pyhton3.7.0

1.下載Pyhton3.7.0到/usr/local 目錄并解壓

cd /usr/local
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz

2.進(jìn)入 Python-3.7.0路徑,編譯安裝到指定路徑,依次執(zhí)行以下命令

cd  /usr/local/Python-3.7.0
./configure --prefix=/usr/local/python3
make
make install

3.安裝完成之后 建立軟鏈接 添加變量 方便在終端中直接使用python3

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

4.Python3安裝完成之后pip3也一塊安裝完成,不需要再單獨(dú)安裝,同樣給pip3建立軟鏈接

ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

5.查看python3與pip3安裝情況


5.png

三,安裝virtualenv ,方便不同版本項(xiàng)目管理。

1.安裝virtualenv

pip3 install virtualenv

2.建立軟連接

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

3.安裝成功在根目錄下建立兩個文件夾,主要用于存放env和網(wǎng)站文件的。

mkdir -p /data/env
mkdir -p /data/web

4.進(jìn)入到/data/env/下,創(chuàng)建指定版本的虛擬環(huán)境,創(chuàng)建完虛擬環(huán)境后進(jìn)入/data/env/pyweb/bin里啟動虛擬環(huán)境

virtualenv --python=/usr/bin/python3 pyweb
source activate  #啟動虛擬環(huán)境
deactivate #退出虛擬環(huán)境

5.出現(xiàn)(pyweb),說明是成功進(jìn)入虛擬環(huán)境。


6.png

四.本地項(xiàng)目遷移到服務(wù)器

1.Django項(xiàng)目配置修改
我們需要把原先的Django項(xiàng)目進(jìn)行修改才能更好地進(jìn)行項(xiàng)目遷移工作,首先需要修改的是 settings.py 文件。
由于項(xiàng)目上線之后不能讓用戶看到后臺的運(yùn)行邏輯,所以我們要把 DEBUG 改成 False ,把 ALLOWED_HOSTS 寫成‘*’,這樣是為了允許從不同主機(jī)進(jìn)行訪問。


1.png

由于linux中如果不加這句可能會出現(xiàn)文件找不到的情況,所以我們要把模板的路徑進(jìn)行拼接。


2.png

2.項(xiàng)目環(huán)境打包
首先我們需要把Django環(huán)境進(jìn)行打包。在pycharm里面Terminal根路徑中輸入pip freeze >packge.txt,把當(dāng)前項(xiàng)目的環(huán)境依賴包導(dǎo)出到packge.txt文件中


3.png

4.png

3.通過FileZilla把本地項(xiàng)目上傳到服務(wù)器對應(yīng)的/data/web/文件夾里面
Inked7_LI.jpg

4.進(jìn)入虛擬環(huán)境然后進(jìn)入項(xiàng)目路徑安裝packge.txt里的依賴包。

pip3 install -r packge.txt
8.png

安裝mysqlclient時出現(xiàn)OSError: mysql_config not found錯誤,時因?yàn)樵蚴莑inux需要mysql相關(guān)的一些依賴包,安裝以下依賴

yum install mysql-devel gcc gcc-devel python-devel
再重新執(zhí)行一下:pip3 install -r packge.txt

五.安裝和配置mariadb

1.下載mariadb

yum install -y mariadb mariadb-server
systemctl start mariadb #啟動mariadb
systemctl enable mariadb #開機(jī)啟動mariadb

2.設(shè)置mariadb的root初始密碼

mysql -u root -p  #進(jìn)入mysql
#第一次進(jìn)入提示輸入密碼,直接按回車,進(jìn)去后設(shè)置初始密碼
set password=password('newpassword') #設(shè)置初始密碼為newpassword
show databases;   #查詢?nèi)繑?shù)據(jù)庫
create database snbank;   #創(chuàng)建snbank數(shù)據(jù)庫
use snbank;   #進(jìn)入snbank數(shù)據(jù)庫
SHOW VARIABLES LIKE 'character%';   #查詢字符集

3.配置mariadb字符集,防止中文亂碼

修改的配置文件位于 /etc/my.cnf.d目錄下的client.cnf文件:
在[client]字段里加入
default-character-set=utf8
修改的配置文件位于 /etc/my.cnf.d目錄下的server.cnf文件:
在[mysqld]字段里加入
character-set-server=utf8

SHOW VARIABLES LIKE 'character%'; #查詢字符集,修改后的結(jié)果是:


9.png

六.安裝和配置uwsgi

1.安裝uwsgi
注意:uwsgi要安裝兩次,先在系統(tǒng)里安裝一次,然后進(jìn)入對應(yīng)的虛擬環(huán)境再安裝一次

pip3 install uwsgi  #退出虛擬環(huán)境deactivate

給uwsgi建立軟鏈接,方便使用

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

2.配置uwsgi
①XML格式的配置文件
我們網(wǎng)站項(xiàng)目路徑是 /data/web/snbank/,在項(xiàng)目根目錄下創(chuàng)建snbank.xml文件,輸入如下內(nèi)容:

<uwsgi>    
   <socket>127.0.0.1:8997</socket> <!-- 內(nèi)部端口,自定義 --> 
   <chdir>/data/web/snbank/</chdir> <!-- 項(xiàng)目路徑 -->            
   <module>snbank.wsgi</module>  <!-- mysite為wsgi.py所在目錄名--> 
   <processes>4</processes> <!-- 進(jìn)程數(shù) -->     
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
#啟動uwsgl
uwsgi -x snbank.xml
#uwsgi有沒有啟動成功,可以用下面的命令查看
ps -ef|grep uwsgi
#如果想重啟uwsgi,先使用下面的命令殺掉進(jìn)程,再啟動uwsgi
killall -9 uwsgi

七.安裝和配置nginx

1.安裝nginx

1.進(jìn)入home目錄,下載nginx
cd /home/
wget http://nginx.org/download/nginx-1.13.7.tar.gz
2.解壓下載的nginx
tar -zxvf nginx-1.13.7.tar.gz
3.進(jìn)入解壓后的nginx-1.13.7文件夾,編譯安裝nginx:
./configure
make
make install
4.nginx一般默認(rèn)安裝好的路徑為/usr/local/nginx在/usr/local/nginx/conf/中先備份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak

進(jìn)入nginx.conf,把原來的內(nèi)容刪除,直接加入以下內(nèi)容:

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  www.django.cn; #改為自己的域名,沒域名修改為127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8997;  #端口要和uwsgi里配置的一樣
           uwsgi_param UWSGI_SCRIPT snbank.wsgi;  #wsgi.py所在的目錄名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/web/snbank/; #項(xiàng)目路徑
           
        }
        location /static/ {
        alias /data/web/snbank/static/; #靜態(tài)資源路徑
        }
    }
}

5.進(jìn)入/usr/local/nginx/sbin/目錄
執(zhí)行./nginx -t命令先檢查配置文件是否有錯,沒有錯就啟動nginx:

./nginx  #啟動nginx
./nginx -s reload  #重啟nginx

八.啟動項(xiàng)目

在瀏覽器輸入ip地址


Inked10_LI.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容